diff --git a/.gitignore b/.gitignore index d0ee3b1..2291101 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ venv/ +dist/ __pycache__/ *.pyc +*.egg-info diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3bef4bc..ef4de06 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,18 +7,18 @@ stages: pytest: stage: test script: - - pip install -r requirements.txt + - pip install -r requirements/dev.txt - pytest . pylint: stage: lint script: - - pip install -r requirements.txt + - pip install -r requirements/dev.txt - pylint src/ types: stage: lint script: - - pip install -r requirements.txt + - pip install -r requirements/dev.txt - mypy src/ diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..8bf50e3 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,26 @@ +BSD 2-Clause License + +Copyright (c) 2023, ChillerDragon +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/README.md b/README.md index ed4c839..d93e81e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -A Python teeworlds client & server library, designed according to sans I/O (http://sans-io.readthedocs.io/) principles +A teeworlds network protocol library, designed according to sans I/O (http://sans-io.readthedocs.io/) principles ## sample usage @@ -25,6 +25,9 @@ pip install -r requirements ## tests and linting ```bash +# dev dependencies +pip install -r requirements/dev.txt + # run unit tests pytest . @@ -35,3 +38,10 @@ pylint src/ mypy src/ ``` +## package and release + +```bash +pip install -r requirements/dev.txt +python -m build +python -m twine upload dist/* +``` diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..f1bfca4 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ['setuptools>=42'] +build-backend = 'setuptools.build_meta' diff --git a/requirements.txt b/requirements.txt index e3ce325..5eaadb8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,22 +1 @@ -astroid==2.15.0 -attrs==22.2.0 -dill==0.3.6 -exceptiongroup==1.1.1 -iniconfig==2.0.0 -isort==5.12.0 -lazy-object-proxy==1.9.0 -libcst==0.4.9 -mccabe==0.7.0 -mypy==1.1.1 -mypy-extensions==1.0.0 -packaging==23.0 -platformdirs==3.1.1 -pluggy==1.0.0 -pylint==2.17.0 -pytest==7.2.2 -PyYAML==6.0 -tomli==2.0.1 -tomlkit==0.11.6 -typing-inspect==0.8.0 -typing_extensions==4.5.0 -wrapt==1.15.0 +-r requirements/prod.txt diff --git a/requirements/dev.txt b/requirements/dev.txt new file mode 100644 index 0000000..4dbfd31 --- /dev/null +++ b/requirements/dev.txt @@ -0,0 +1,53 @@ +-r prod.txt +astroid==2.15.0 +attrs==22.2.0 +bleach==6.0.0 +build==0.10.0 +certifi==2022.12.7 +cffi==1.15.1 +charset-normalizer==3.1.0 +cryptography==39.0.2 +dill==0.3.6 +docutils==0.19 +exceptiongroup==1.1.1 +idna==3.4 +importlib-metadata==6.0.0 +iniconfig==2.0.0 +isort==5.12.0 +jaraco.classes==3.2.3 +jeepney==0.8.0 +keyring==23.13.1 +lazy-object-proxy==1.9.0 +libcst==0.4.9 +markdown-it-py==2.2.0 +mccabe==0.7.0 +mdurl==0.1.2 +more-itertools==9.1.0 +mypy==1.1.1 +mypy-extensions==1.0.0 +packaging==23.0 +pkginfo==1.9.6 +platformdirs==3.1.1 +pluggy==1.0.0 +pycparser==2.21 +Pygments==2.14.0 +pylint==2.17.0 +pyproject_hooks==1.0.0 +pytest==7.2.2 +PyYAML==6.0 +readme-renderer==37.3 +requests==2.28.2 +requests-toolbelt==0.10.1 +rfc3986==2.0.0 +rich==13.3.2 +SecretStorage==3.3.3 +six==1.16.0 +tomli==2.0.1 +tomlkit==0.11.6 +twine==4.0.2 +typing-inspect==0.8.0 +typing_extensions==4.5.0 +urllib3==1.26.15 +webencodings==0.5.1 +wrapt==1.15.0 +zipp==3.15.0 diff --git a/requirements/prod.txt b/requirements/prod.txt new file mode 100644 index 0000000..e69de29 diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..e55ecc3 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,26 @@ +[metadata] +name = twnet_parser +version = 0.0.1 +author = ChillerDragon +author_email = chillerdragon@gmail.com +description = A teeworlds network protocol library, designed according to sans I/O (http://sans-io.readthedocs.io/) principles +long_description = file: README.md, LICENSE.txt +long_description_content_type = text/markdown +url = https://gitlab.com/teeworlds-network/twnet_parser +license = BSD-2.0 +project_urls = + Bug Tracker = https://gitlab.com/teeworlds-network/twnet_parser/-/issues + repository = https://gitlab.com/teeworlds-network/twnet_parser +classifiers = + Programming Language :: Python :: 3 + License :: OSI Approved :: BSD License + Operating System :: OS Independent + +[options] +package_dir = + = src +packages = find: +python_requires = >=3.6 + +[options.packages.find] +where = src