├── .gitignore ├── LICENSE.rst ├── README.rst ├── microjet └── __init__.py ├── requirements.txt └── setup.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | # C extensions 6 | *.so 7 | 8 | # Distribution / packaging 9 | .Python 10 | env/ 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | lib/ 17 | lib64/ 18 | parts/ 19 | sdist/ 20 | var/ 21 | *.egg-info/ 22 | .installed.cfg 23 | *.egg 24 | 25 | # PyInstaller 26 | # Usually these files are written by a python script from a template 27 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 28 | *.manifest 29 | *.spec 30 | 31 | # Installer logs 32 | pip-log.txt 33 | pip-delete-this-directory.txt 34 | 35 | # Unit test / coverage reports 36 | htmlcov/ 37 | .tox/ 38 | .coverage 39 | .cache 40 | nosetests.xml 41 | coverage.xml 42 | 43 | # Translations 44 | *.mo 45 | *.pot 46 | 47 | # Django stuff: 48 | *.log 49 | 50 | # Sphinx documentation 51 | docs/_build/ 52 | 53 | # PyBuilder 54 | target/ 55 | 56 | # PyCharm 57 | .idea/ 58 | 59 | # Virtualenv 60 | venv/ 61 | 62 | # SQLite 63 | *.db 64 | 65 | # Vim Rope 66 | .ropeproject/ 67 | -------------------------------------------------------------------------------- /LICENSE.rst: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016, ETS Labs 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | * Neither the name of "MicroJet" nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | ======== 2 | MicroJet 3 | ======== 4 | 5 | Python 3 asynchronous microservices framework powered by asyncio. 6 | 7 | Main features: 8 | 9 | + Lightweight & extensible core 10 | + Fully asynchronous 11 | + Clean & simple application architecture 12 | + Builtin microjet-to-microjet integration 13 | + Integrated dependency injection framework 14 | + Easy-to-use configuration system 15 | -------------------------------------------------------------------------------- /microjet/__init__.py: -------------------------------------------------------------------------------- 1 | """MicroJet top-level package.""" 2 | 3 | VERSION = '0.0.4' 4 | """Version number that follows semantic versioning. 5 | 6 | :type: str 7 | """ 8 | 9 | 10 | __all__ = ( 11 | 'VERSION', 12 | ) 13 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | dependency-injector>=2.2.0 2 | pyyaml>=3.12 3 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | """`MicroJet` setup script.""" 2 | 3 | import os 4 | import re 5 | 6 | from setuptools import setup 7 | from setuptools import Command 8 | 9 | 10 | # Getting description: 11 | with open('README.rst') as readme_file: 12 | description = readme_file.read() 13 | 14 | # Getting requirements: 15 | with open('requirements.txt') as version: 16 | requirements = version.readlines() 17 | 18 | # Getting version: 19 | with open('microjet/__init__.py') as init_file: 20 | version = re.search('VERSION = \'(.*?)\'', init_file.read()).group(1) 21 | 22 | 23 | class PublishCommand(Command): 24 | """Setuptools `publish` command.""" 25 | 26 | description = 'Publish current distribution to PyPi and create tag' 27 | user_options = [] 28 | 29 | def initialize_options(self): 30 | """Init options.""" 31 | 32 | def finalize_options(self): 33 | """Finalize options.""" 34 | 35 | def run(self): 36 | """Command execution.""" 37 | self.run_command('sdist') 38 | self.run_command('upload') 39 | os.system('git tag -a {0} -m \'version {0}\''.format(version)) 40 | os.system('git push --tags') 41 | 42 | 43 | setup(name='MicroJet', 44 | version=version, 45 | description='Python 3 asynchronous micro framework powered by asyncio', 46 | long_description=description, 47 | author='ETS Labs', 48 | author_email='rmogilatov@gmail.com', 49 | maintainer='ETS Labs', 50 | maintainer_email='rmogilatov@gmail.com', 51 | url='https://github.com/ets-labs/python-microjet', 52 | license='BSD New', 53 | packages=['microjet'], 54 | zip_safe=True, 55 | install_requires=requirements, 56 | cmdclass={ 57 | 'publish': PublishCommand, 58 | }, 59 | keywords=[ 60 | ], 61 | classifiers=[ 62 | 'Development Status :: 2 - Pre-Alpha', 63 | 'Intended Audience :: Developers', 64 | 'License :: OSI Approved :: BSD License', 65 | # 'Operating System :: OS Independent', 66 | 'Programming Language :: Python', 67 | 'Programming Language :: Python :: 3', 68 | 'Programming Language :: Python :: 3.4', 69 | 'Programming Language :: Python :: 3.5', 70 | 'Programming Language :: Python :: Implementation :: CPython', 71 | # 'Programming Language :: Python :: Implementation :: PyPy', 72 | 'Topic :: Software Development', 73 | 'Topic :: Software Development :: Libraries', 74 | 'Topic :: Software Development :: Libraries :: Python Modules', 75 | ]) 76 | --------------------------------------------------------------------------------