Skip to content

Commit

Permalink
Merge 901ad91 into 708a4b3
Browse files Browse the repository at this point in the history
  • Loading branch information
安生 committed Dec 29, 2017
2 parents 708a4b3 + 901ad91 commit fbe75f4
Show file tree
Hide file tree
Showing 12 changed files with 77 additions and 250 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,5 @@ ENV/
.mypy_cache/
.idea

.DS_Store
.DS_Store
t.py
20 changes: 0 additions & 20 deletions docs/Makefile

This file was deleted.

5 changes: 5 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Welcome to Turbotools

```bash
$ pip install turbotools
```
36 changes: 0 additions & 36 deletions docs/make.bat

This file was deleted.

Empty file removed docs/source/_static/a.txt
Empty file.
Empty file removed docs/source/_templates/a.txt
Empty file.
169 changes: 0 additions & 169 deletions docs/source/conf.py

This file was deleted.

20 changes: 0 additions & 20 deletions docs/source/index.rst

This file was deleted.

3 changes: 3 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
site_name: Turbotools
pages:
- Home: index.md
22 changes: 22 additions & 0 deletions tests/test_date.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import unittest
from datetime import datetime

from turbotools.date import datetime_to_str
from turbotools.date import datetime_transfer


class DateTest(unittest.TestCase):
def setUp(self):
self.now_time = datetime.now()
self.range_count = 10

def test_datetime_to_str(self):
data = datetime_to_str({'now': self.now_time}, 'now')
self.assertEqual(isinstance(data['now'], str), True)

def test_datetime_transfer(self):
data_list = [{'time': self.now_time, 'now': self.now_time} for _ in range(self.range_count)]
data = datetime_transfer(data_list, ['time', 'now'])
for now_time in data:
self.assertEqual(isinstance(now_time['time'], str), True)
self.assertEqual(isinstance(now_time['now'], str), True)
8 changes: 4 additions & 4 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ envlist = docs,pep8,unit
recreate = True

[testenv:docs]
changedir = docs
deps = sphinx
commands = sphinx-build -W -b html source build
deps = mkdocs
mkdocs-bootswatch
commands = mkdocs build

[testenv:pep8]
deps = flake8
Expand All @@ -22,4 +22,4 @@ commands = flake8 --max-line-length 120 turbotools tests
[testenv:unit]
deps = nose
coverage
commands = nosetests --with-coverage --cover-erase --cover-package=turbotools
commands = nosetests --with-coverage --cover-erase --cover-package=turbotools
41 changes: 41 additions & 0 deletions turbotools/date.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import datetime


def datetime_to_str(obj, key):
""" obj datetime key to str
"""
if isinstance(obj[key], datetime.datetime):
r = obj[key].isoformat()
if obj[key].microsecond:
r = r[:23] + r[26:]
if r.endswith('+00:00'):
r = r[:-6] + 'Z'
obj[key] = r
elif isinstance(obj[key], datetime.date):
r = obj[key].isoformat()
obj[key] = r
elif isinstance(obj[key], datetime.time):
if obj[key].utcoffset() is not None:
raise ValueError("can't represent timezone-aware times.")
r = obj[key].isoformat()
if obj[key].microsecond:
r = r[:12]
obj[key] = r
return obj


def datetime_transfer(obj_list, key_list):
""" 将列表里面每个元素的时间类型的字段转换为字符串
"""
if isinstance(key_list, str):
keys = list()
keys.append(key_list)
key_list = keys
if isinstance(obj_list, dict):
for key in key_list:
datetime_to_str(obj_list, key)
elif isinstance(obj_list, list):
for obj in obj_list:
for key in key_list:
datetime_to_str(obj, key)
return obj_list

0 comments on commit fbe75f4

Please sign in to comment.