Skip to content

Instantly share code, notes, and snippets.

@huyx
huyx / README.md
Created August 3, 2018 03:55
自动生成 MySQL 数据库文档

数据库文档

自动生成数据库结构文档,文档格式为 Makrdown。

任务

  • 自动生成主文档: 数据表,字段说明
  • 自动生成变更日志
    • 记录数据表的添加、删除
  • 记录字段的添加、删除
@huyx
huyx / django_log_settings.py
Last active December 15, 2017 08:20 — forked from st4lk/django_log_settings.py
实用的 django logging 配置
"""
参考: [Django logging settings](http://www.lexev.org/en/2013/django-logging-settings/)
代码: https://gist.github.com/st4lk/6725777
修改内容:
* formatters: 分成 default_formatter, debug_formatter
* NullHandler: 采用 logging 模块的 NullHandler
* 格式中增加毫秒数: %(msecs)s
* 增加 django.db.backends 的配置,把 SQL 记录在日志文件里面
# -*- coding: utf-8 -*-
"""
使用 py.test -s test_setup_teardown.py 运行
"""
import os
def multiply(x, y):
return x * y
outputs = ["", "", "----"]
@huyx
huyx / mysql_drop_tables.py
Created July 16, 2014 09:01
批量删除 MySQL 表
#!/usr/bin/env python
# -*- coding: utf-8 -*-
u"""MySQL Drop Tables
Usage:
mysql_drop_tables.py [-y] MYSQL_URL TABLE_PATTERN ...
Options:
-y 直接执行,不提示用户
@huyx
huyx / parsemysqlurl.py
Created July 16, 2014 07:46
parseValue, parseMysqlURL
from ast import literal_eval
import urlparse
def parseValue(value):
try:
return literal_eval(value)
except:
pass
try:
return literal_eval('"%s"' % value)
@huyx
huyx / merge.py
Created July 14, 2014 04:46
支持字典、模块等的合并
# -*- coding: utf-8 -*-
u'''合并对象,特点:
- 字典对象并操作
- 其他对象替换
可以合并的对象包括:
- 字典
- 模块
@huyx
huyx / mergedict.py
Last active August 29, 2015 14:03
Merge dict or dict like object,, include OrderedDict。
# -*- coding: utf-8 -*-
u'''合并字典,可用于配置信息合并
合并的原则是后来的数据优先
'''
def mergeable(target, source):
'''
>>> from collections import OrderedDict
@huyx
huyx / pointinpolygon.py
Created April 14, 2014 02:28
判断点是否在多边形内部
# -*- coding: utf-8 -*-
"""判断点是否在多边形内部
参考: https://github.com/flaviamissi/Point-Inside-Polygon
"""
def get_number_of_intersected_sides(self, point, polygon):
crossed_by_left = 0; crossed_by_right = 0
for i in range(1, len(polygon)):
if point[1] in range(polygon[i-1][1], polygon[i][1]+1) or point[1] in range(polygon[i][1], polygon[i-1][1]+1):
from collections import namedtuple
from urllib import urlencode
import os
FormFile = namedtuple('FormFile', 'filename, data')
def encode_form(fields, multipart=False, headers=None):
headers = headers or {}
@huyx
huyx / writeable.py
Last active January 4, 2016 10:59
文件和目录是否可写
import os
import tempfile
def dir_writeable(dir):
try:
(fd, name) = tempfile.mkstemp(dir=dir)
os.close(fd)
os.unlink(name)
except IOError:
return False