{ "info": { "author": "Oliver Berger", "author_email": "diefans@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "zeitig\n======\n\n.. container:: bagdes\n\n .. image:: https://travis-ci.org/diefans/zeitig.svg?branch=master\n :target: https://travis-ci.org/diefans/zeitig\n\n .. image:: https://img.shields.io/pypi/pyversions/zeitig.svg\n :alt: PyPI - Python Version\n\n .. image:: https://img.shields.io/pypi/v/zeitig.svg\n :alt: PyPI\n\nA time tracker.\n\nThe basic idea is to store all situation changes as a stream of events and create a\nreport as an aggregation out of these.\n\n\nUsage\n-----\n\n.. code-block::\n\n Usage: z [OPTIONS] [GROUP] COMMAND [ARGS]...\n\n Options:\n --help Show this message and exit.\n\n Commands:\n add Apply tags and notes.\n break Change to or start the `break` situation.\n remove Remove tags and flush notes.\n report Create a report of your events.\n work Change to or start the `work` situation.\n\n\nExample session\n---------------\n\nYou may add a timestamp, as in the example, which is parsed for your timezone.\nYou may abbreviate the commands, so the shortes way to track your time of a\nrunning project is just ``z w`` and ``z b``.\n\n.. code-block::\n\n > export ZEITIG_STORE=/tmp/zeitig; mkdir $ZEITIG_STORE\n\n > z foobar work -t foo \"2018-04-01 08:00:00\"\n\n > z break \"2018-04-01 12:00:00\"\n\n > z w \"2018-04-01 13:00:00\"\n\n > z b \"2018-04-01 17:30:00\"\n\n > z\n Actual time: 2018-05-04 23:09:01\n\n Actual group: foobar of foobar\n Last situation in foobar: Break started at 2018-04-01 17:30:00 since 797.65 hours\n\n Store used: /tmp/zeitig/olli\n Last event: groups/foobar/source/2018-04-01T15:30:00+00:00\n\n > z report\n Working times for foobar until Friday 04 May 2018\n\n Week: 13\n 2018-04-01 08:00:00 - 12:00:00 - 4.00 - foo\n 2018-04-01 13:00:00 - 17:30:00 - 4.50\n\n Total hours: 8.50\n\n\nInternals\n---------\n\nYou may create a ``.zeitig`` directory somewhere in your current working\ndirectory path to use it as the store. Other defaults are ``~/.config/zeitig``\nand ``~/.local/share/zeitig``.\n\nFor every user is a separate directory created, which containes the groups and\nthe events sources:\n\n.. code-block::\n\n .zeitig/\n |\n +- \n |\n +- last ---+\n | |\n +- groups |\n | | v\n | +- \n | | \n | +- source\n | | | \n | | +- \n | |\n | +- templates\n | | |\n | | +- \n | |\n | +- template_defaults.toml\n | |\n | +- template_syntax.toml\n |\n +- templates\n | |\n | +- \n |\n +- template_defaults.toml\n |\n +- template_syntax.toml\n\nThe events are stored as simple ``toml`` files.\n\nReports\n_______\n\nEvents are fully exposed to the reporting template. You can pipeline certain\nfilters and aggregators to modifiy the event stream.\n\nTemplates are rendered by `jinja2`. You can modify the start and end tags by a\nspecial ``template_syntax.toml`` file.\n\nAn example latex template may look like this:\n\n.. code-block:: latex\n\n \\documentclass{article}\n\n \\usepackage[a4paper, total={6in, 8in}]{geometry}\n\n \\usepackage{longtable,array,titling,booktabs}\n \\setlength{\\parindent}{0pt}\n \\setlength{\\parskip}{\\baselineskip}\n \\title{\\vspace{-13em}Timesheet\\vspace{0em}}\n \\author{\\vspace{-10em}}\n \\date{\\vspace{-5em}}\n\n % sans serif font\n \\renewcommand{\\familydefault}{\\sfdefault}\n\n \\begin{document}\n \\maketitle\n \\thispagestyle{empty} % no page footer\n \\vspace{-5em}\n \\begin{longtable}{\n >{\\raggedleft\\arraybackslash}r\n >{\\raggedright\\arraybackslash}l}\n \\textbf{Client}: & We do something special\\\\\n \\textbf{Contractor}: & Oliver Berger\\\\\n \\textbf{Project number}: & 12-345-6789-0\\\\\n \\end{longtable}\n\n \\begin{longtable}{\n >{\\raggedright\\arraybackslash}l\n >{\\raggedright\\arraybackslash}l\n >{\\raggedleft\\arraybackslash}r\n >{\\raggedright\\arraybackslash}l}\n Start & End & Hours & Description\\\\\n \\BLOCK{for event in events.pipeline(\n report.source,\n events.filter_no_breaks,\n events.Summary.aggregate,\n events.DatetimeChange.aggregate\n )-}\n \\BLOCK{if py.isinstance(event, events.DatetimeChange) and event.is_new_week}\n \\midrule\n \\BLOCK{endif-}\n \\BLOCK{if py.isinstance(event, events.Work)}\n \\VAR{event.local_start.to_datetime_string()} & \\VAR{event.local_end.to_time_string()} & \\VAR{'{0:.2f}'.format(event.period.total_hours())} & \\BLOCK{if event.tags}\\VAR{', '.join(event.tags)}\\BLOCK{endif-}\\\\\n \\BLOCK{endif-}\n\n \\BLOCK{if py.isinstance(event, events.Summary)}\n \\midrule\n \\multicolumn{2}{l}{\\textbf{Total hours}} & \\textbf{\\VAR{'{0:.2f}'.format(event.works.total_hours())}} & \\\\\n \\BLOCK{endif-}\n \\BLOCK{-endfor-}\n \\end{longtable}\n \\vspace{5em}\n \\begin{longtable}{\n >{\\centering\\arraybackslash}p{3.5cm}\n l\n >{\\centering\\arraybackslash}p{5.5cm}}\n \\cline{1-1}\n \\cline{3-3}\n Date & & Signature of client\\\\\n \\end{longtable}\n\n \\end{document}\n\n\nJinja syntax\n____________\n\nGroup jinja template syntax will be merged into user syntax:\n\n.. code-block::\n\n [jinja_env]\n\n [jinja_env.latex]\n # define a latex jinja env\n block_start_string = \"\\\\BLOCK{\"\n block_end_string = \"}\"\n variable_start_string = \"\\\\VAR{\"\n variable_end_string = \"}\"\n comment_start_string = \"\\\\#{\"\n comment_end_string = \"}\"\n line_statement_prefix = \"%%\"\n line_comment_prefix = \"%#\"\n trim_blocks = true\n autoescape = false\n\n [templates]\n # map a template name to a jinja env\n latex_template = \"latex\"\n\n\nJinja defaults\n______________\n\nYou may define also template defaults for a group, which will be merged into\nthe user template defaults.\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/diefans/zeitig", "keywords": "t,i,m,e, ,t,r,a,c,k,e,r", "license": "Apache-2.0", "maintainer": "", "maintainer_email": "", "name": "zeitig", "package_url": "https://pypi.org/project/zeitig/", "platform": "", "project_url": "https://pypi.org/project/zeitig/", "project_urls": { "Homepage": "https://github.com/diefans/zeitig", "Repository": "https://github.com/diefans/zeitig" }, "release_url": "https://pypi.org/project/zeitig/0.4.1/", "requires_dist": [ "click", "colorama", "crayons", "dateparser", "jinja2", "pendulum", "qtoml (>=0.2.4,<0.3.0)" ], "requires_python": ">=3.6,<4.0", "summary": "time tracker and reporter", "version": "0.4.1" }, "last_serial": 5104362, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "c04fd18d791477f2a317197aa959cead", "sha256": "b9ce871f252c1fcb1ea04f90a4381a27b24fd81019a6db0fe76c36d977504884" }, "downloads": -1, "filename": "zeitig-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c04fd18d791477f2a317197aa959cead", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14409, "upload_time": "2018-04-26T11:05:28", "url": "https://files.pythonhosted.org/packages/2e/8d/5c70c11aefe2be8a8b4eca7732140bbb7506228adfa50bd9780e742d5f9c/zeitig-0.0.0-py3-none-any.whl" } ], "0.0.1": [ { "comment_text": "", "digests": { "md5": "93638e58e11ac51b7e27a31529da3c6f", "sha256": "de3527907be9e51f89f2c5422e3036e7adfce8d17650ef58d5e2155ae5993ede" }, "downloads": -1, "filename": "zeitig-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "93638e58e11ac51b7e27a31529da3c6f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14403, "upload_time": "2018-04-26T11:08:25", "url": "https://files.pythonhosted.org/packages/4b/4b/6538a12fb73e93e34d26a45e551910a82101ccbd7da5b60036e19588ee99/zeitig-0.0.1-py3-none-any.whl" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "94e131fd6b408ec2cfe503bf1160a925", "sha256": "149f1e91287bdde6e1c7ecf1e82950c7021bceb79a2d633bea88b3f1e2ab5e93" }, "downloads": -1, "filename": "zeitig-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "94e131fd6b408ec2cfe503bf1160a925", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14401, "upload_time": "2018-04-26T11:09:34", "url": "https://files.pythonhosted.org/packages/d8/1b/6ecffd46e2610032ccac29d61bbe1ba07f18526cf8a47ab997996a56321c/zeitig-0.0.2-py3-none-any.whl" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "a0e34df119a52f9685c150d7276c53ac", "sha256": "9948da5c6bbe05d361838c213d8010b0a193fe883f6e338d55d8b7e5beb60994" }, "downloads": -1, "filename": "zeitig-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a0e34df119a52f9685c150d7276c53ac", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17901, "upload_time": "2018-05-04T21:51:16", "url": "https://files.pythonhosted.org/packages/e8/6f/43fabc5f1412d021b31f9471431a71fae3f82f6fcb7f0013e2ef7245b1b1/zeitig-0.1.0-py2.py3-none-any.whl" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "dfa6972e547f08beaefd4996215f7168", "sha256": "37c0d50f69418458a5f1e9a72d6651bf525d06e3c6fb26acf7cc9f5b9e9336ee" }, "downloads": -1, "filename": "zeitig-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dfa6972e547f08beaefd4996215f7168", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18108, "upload_time": "2018-05-05T12:49:11", "url": "https://files.pythonhosted.org/packages/b7/bd/7ee55f95547f29506ea6fc43063f280658c95baf10ffcfebebc3eb57fdc3/zeitig-0.2.1-py2.py3-none-any.whl" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "bb27b670d5c556f8089cc485325bc914", "sha256": "f77a46a96241aed0b7842bb044572212d64a68c2c5d9f821467a255968b92880" }, "downloads": -1, "filename": "zeitig-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bb27b670d5c556f8089cc485325bc914", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18150, "upload_time": "2018-05-05T13:14:08", "url": "https://files.pythonhosted.org/packages/13/08/ff6030bb1165d99a673b6e80ba223622fc2649a08acb91e5627caf8579f5/zeitig-0.2.2-py2.py3-none-any.whl" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "618b9d169a8fc324b7ef584102638b1b", "sha256": "03d35fb663cc2f8bcfc1efc622cf3b3d47ecf0964605a05e4788fd532327fe95" }, "downloads": -1, "filename": "zeitig-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "618b9d169a8fc324b7ef584102638b1b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18145, "upload_time": "2018-05-05T13:18:34", "url": "https://files.pythonhosted.org/packages/98/a1/be41fc64a44b4524c43352b676241a83e4262b6f76534f2f16811676807a/zeitig-0.2.3-py2.py3-none-any.whl" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "2a5f0eec628590fbda1ec5ea55c66ac0", "sha256": "de9758852ee49534051e0259f998c8a34ee0a07b6bd4b676edc64349da723b05" }, "downloads": -1, "filename": "zeitig-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a5f0eec628590fbda1ec5ea55c66ac0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18257, "upload_time": "2018-05-22T10:16:37", "url": "https://files.pythonhosted.org/packages/92/b0/18163322822c6447921f9d26833b84868d61396caae18bfa4b3ca4d211f1/zeitig-0.2.4-py2.py3-none-any.whl" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "3e0502be1ef749198b50f8b113ded4ae", "sha256": "f855a6c9efc0a75fdffca27a16602a383f4e73dbe5c316c592c4ae8cd5329bb3" }, "downloads": -1, "filename": "zeitig-0.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3e0502be1ef749198b50f8b113ded4ae", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18500, "upload_time": "2018-05-29T15:48:59", "url": "https://files.pythonhosted.org/packages/db/03/bdaaf1dac21c04ad392ab468c102866114a437a29b544b090537734079ee/zeitig-0.2.5-py2.py3-none-any.whl" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "3bc3a5df46bfa88a9803dc5b3dc775c7", "sha256": "2b636a2a49f3bfda797f5b889e78c430148223a3b7ebd8790ea16c796b8da3b9" }, "downloads": -1, "filename": "zeitig-0.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3bc3a5df46bfa88a9803dc5b3dc775c7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22713, "upload_time": "2019-02-04T20:20:18", "url": "https://files.pythonhosted.org/packages/6e/7f/94ad38af3176efa50dede03878759d32383657b337c679449fa1af5ecef9/zeitig-0.2.6-py2.py3-none-any.whl" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "f4709caae1d3d517514cac39e9e26c12", "sha256": "f883f734747aded30a0692f2061cb6e587447869e6a9f07653924ca2f68eca64" }, "downloads": -1, "filename": "zeitig-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f4709caae1d3d517514cac39e9e26c12", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 63092, "upload_time": "2019-03-02T14:21:52", "url": "https://files.pythonhosted.org/packages/31/a5/6f76cecf42f1c8172684a10843aea93e1051b14c63f675691c373de8db1c/zeitig-0.3.0-py3-none-any.whl" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "9ee043c2d298f667097aaad29c440e9c", "sha256": "18b2305272987d67d4672d81039d2abfdc2955a430324f75a3859b89512b6def" }, "downloads": -1, "filename": "zeitig-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9ee043c2d298f667097aaad29c440e9c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 63332, "upload_time": "2019-03-02T15:13:26", "url": "https://files.pythonhosted.org/packages/3f/6e/362c32285cf9182b5be78d73e6d646b7e670598f1da64ab0c5f4a1d6cf51/zeitig-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5062b5da6dd799c37cfde16d75f835ae", "sha256": "cd3020163c6aa3839096dd90bac2c523ef526c9a93b6e6e26c00ddbae576b821" }, "downloads": -1, "filename": "zeitig-0.3.1.tar.gz", "has_sig": false, "md5_digest": "5062b5da6dd799c37cfde16d75f835ae", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 16549, "upload_time": "2019-03-02T15:13:28", "url": "https://files.pythonhosted.org/packages/a2/c3/71feb2cc44189ab2138856cb5661f7bfa39090f9d2f8471e4c1ffb9eaf5b/zeitig-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "9148cb0a8da60422e1e7dd32a927f2eb", "sha256": "a586cae798e889962a2448cce775cb24c2eaddbbcec4d642111208f48927b035" }, "downloads": -1, "filename": "zeitig-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9148cb0a8da60422e1e7dd32a927f2eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 65544, "upload_time": "2019-03-02T15:15:45", "url": "https://files.pythonhosted.org/packages/e0/64/cd18aa51799c080229976a7a1d346dcbcdd34035f2dc67fd4dc0e63bf43e/zeitig-0.3.2-py3-none-any.whl" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "b4a5951b6d8ff6a9ce7ddb28bc98fe45", "sha256": "a40f20f033b942ba33123889a6bc9c8259e01d46e12dda509919d954831d27dc" }, "downloads": -1, "filename": "zeitig-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b4a5951b6d8ff6a9ce7ddb28bc98fe45", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 66483, "upload_time": "2019-03-02T15:45:58", "url": "https://files.pythonhosted.org/packages/17/ea/6f3477c503897ce40a2d8a356b46033e645ed33f13890baccee4c96a2322/zeitig-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c193cc9113b26defabd6bb24905bbef", "sha256": "b4d73ddcdb66bc5eb63e882794761f85f6bb79408b566929d9f6ac05bc3544a4" }, "downloads": -1, "filename": "zeitig-0.3.3.tar.gz", "has_sig": false, "md5_digest": "8c193cc9113b26defabd6bb24905bbef", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 20874, "upload_time": "2019-03-02T15:46:00", "url": "https://files.pythonhosted.org/packages/d5/5f/400b8e9284fcec61af962183c9c7dfe620fa1ac8ca543053cdac33ed0756/zeitig-0.3.3.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "c6949bf9f5d9627de530509ccd0add54", "sha256": "51952f4a64216e09932da23dd375de211f8cb446820629e2708f5f6ae8ff6f18" }, "downloads": -1, "filename": "zeitig-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c6949bf9f5d9627de530509ccd0add54", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 70002, "upload_time": "2019-04-05T15:39:45", "url": "https://files.pythonhosted.org/packages/ee/5c/d9a9ad3e6ff189715409f51a215852aaefd6181d054c98de4edefb8d1580/zeitig-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d95708b225494e9e49ad321efab3a34", "sha256": "74660923791c8e1f0ce192e9c60c9239b953913a3b4645a30ff2b2cb864013d3" }, "downloads": -1, "filename": "zeitig-0.4.0.tar.gz", "has_sig": false, "md5_digest": "4d95708b225494e9e49ad321efab3a34", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 21580, "upload_time": "2019-04-05T15:39:47", "url": "https://files.pythonhosted.org/packages/cc/57/ea04d8ea324b7c306ecb1579cca6030a8e18069a14a9f99210a67b737f96/zeitig-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "38121155b7cb55971c79b5e793b6be22", "sha256": "ee708e8e95da620db7aff55b37f704533d2911b47348f87d6300e0168ad8bf41" }, "downloads": -1, "filename": "zeitig-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "38121155b7cb55971c79b5e793b6be22", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 70027, "upload_time": "2019-04-05T15:47:20", "url": "https://files.pythonhosted.org/packages/09/d0/12f9ecb5d2fd5da06beeb1562035bfab51e876b0009bb7d3fd429255669d/zeitig-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "093423f1469919d0a949c2e5f8361d27", "sha256": "e22bf6d57be21384aa7251ffb9fbda9c3c3e49c704d8dcf3d6d4ca474f87ad2b" }, "downloads": -1, "filename": "zeitig-0.4.1.tar.gz", "has_sig": false, "md5_digest": "093423f1469919d0a949c2e5f8361d27", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 21608, "upload_time": "2019-04-05T15:47:22", "url": "https://files.pythonhosted.org/packages/cf/b8/b78ebefaece62111cfdf60aefb393f6c5b035d9db953893996ec5a0f6b5f/zeitig-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "38121155b7cb55971c79b5e793b6be22", "sha256": "ee708e8e95da620db7aff55b37f704533d2911b47348f87d6300e0168ad8bf41" }, "downloads": -1, "filename": "zeitig-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "38121155b7cb55971c79b5e793b6be22", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 70027, "upload_time": "2019-04-05T15:47:20", "url": "https://files.pythonhosted.org/packages/09/d0/12f9ecb5d2fd5da06beeb1562035bfab51e876b0009bb7d3fd429255669d/zeitig-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "093423f1469919d0a949c2e5f8361d27", "sha256": "e22bf6d57be21384aa7251ffb9fbda9c3c3e49c704d8dcf3d6d4ca474f87ad2b" }, "downloads": -1, "filename": "zeitig-0.4.1.tar.gz", "has_sig": false, "md5_digest": "093423f1469919d0a949c2e5f8361d27", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 21608, "upload_time": "2019-04-05T15:47:22", "url": "https://files.pythonhosted.org/packages/cf/b8/b78ebefaece62111cfdf60aefb393f6c5b035d9db953893996ec5a0f6b5f/zeitig-0.4.1.tar.gz" } ] }