Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add development.in #200

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ bash:

## Upgrade your python's dependencies:
upgrade:
docker-compose run --rm $(PROJECT_NAME)_app python3 -m $(PROJECT_NAME).utils.check-requirements
docker-compose run --rm $(PROJECT_NAME)_app python3 -m piptools compile $(PROJECT_NAME)/requirements/development.in --output-file=$(PROJECT_NAME)/requirements/development.txt
docker-compose run --rm $(PROJECT_NAME)_app python3 -m piptools compile $(PROJECT_NAME)/requirements/production.in --output-file=$(PROJECT_NAME)/requirements/production.txt
docker-compose run --rm $(PROJECT_NAME)_app python3 -m piptools compile $(PROJECT_NAME)/requirements/documentation.in --output-file=$(PROJECT_NAME)/requirements/documentation.txt

## Create profile sampling of application.
profile:
Expand Down Expand Up @@ -125,4 +127,4 @@ adev: {%- if cookiecutter.use_postgres == 'y' or cookiecutter.use_redis == 'y' %
## Runs application with specified postgres and redis.
wait_resources:
python3 -m $(PROJECT_NAME).utils.wait_script
{%- endif %}
{%- endif %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
aiohttp==3.6.2
aiohttp_jinja2==1.2.0
trafaret_config==2.0.2
markdown2==2.3.7
aiopg[sa]==1.0.0
psycopg2-binary==2.8.4
alembic==1.4.1
aioredis==1.3.1
uvloop==0.14.0

Sphinx==2.4.4
sphinx-autodoc-typehints==1.10.3
sphinxcontrib-websupport==1.2.0
doc8==0.8.0

mypy==0.770
flake8==3.7.9
pytest==5.4.1
pytest-cov==2.8.1
pytest-aiohttp==0.3.0
black==19.10b0
py-spy==0.3.3

aiohttp-devtools==0.13.1
aiohttp-debugtoolbar==0.6.0
Original file line number Diff line number Diff line change
@@ -1,13 +1,87 @@
-r production.txt
-r documentation.txt
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile --output-file='create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.txt' 'create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in'
#
aiohttp-debugtoolbar==0.6.0 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
aiohttp-devtools==0.13.1 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
aiohttp==3.6.2 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in, aiohttp-debugtoolbar, aiohttp-devtools, aiohttp-jinja2, pytest-aiohttp
aiohttp_jinja2==1.2.0 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in, aiohttp-debugtoolbar
aiopg[sa]==1.0.0 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
aioredis==1.3.1 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
alabaster==0.7.12 # via sphinx
alembic==1.4.1 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
appdirs==1.4.4 # via black
async-timeout==3.0.1 # via aiohttp, aioredis
attrs==19.3.0 # via aiohttp, black, pytest
babel==2.8.0 # via sphinx
black==19.10b0 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
certifi==2020.6.20 # via requests
chardet==3.0.4 # via aiohttp, doc8, requests
click==7.1.2 # via aiohttp-devtools, black
coverage==5.2 # via pytest-cov
devtools==0.5.1 # via aiohttp-devtools
doc8==0.8.0 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
docutils==0.16 # via doc8, restructuredtext-lint, sphinx
entrypoints==0.3 # via flake8
flake8==3.7.9 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
hiredis==1.1.0 # via aioredis
idna==2.10 # via requests, yarl
imagesize==1.2.0 # via sphinx
jinja2==2.11.2 # via aiohttp-jinja2, sphinx
mako==1.1.3 # via alembic
markdown2==2.3.7 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
markupsafe==1.1.1 # via jinja2, mako
mccabe==0.6.1 # via flake8
more-itertools==8.4.0 # via pytest
multidict==4.7.6 # via aiohttp, yarl
mypy-extensions==0.4.3 # via mypy
mypy==0.770 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
packaging==20.4 # via pytest, sphinx
pathspec==0.8.0 # via black
pbr==5.4.5 # via stevedore
pluggy==0.13.1 # via pytest
psycopg2-binary==2.8.4 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in, aiopg, sqlalchemy
py-spy==0.3.3 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
py==1.9.0 # via pytest
pycodestyle==2.5.0 # via flake8
pyflakes==2.1.1 # via flake8
pygments==2.6.1 # via aiohttp-devtools, sphinx
pyparsing==2.4.7 # via packaging
pytest-aiohttp==0.3.0 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
pytest-cov==2.8.1 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
pytest==5.4.1 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in, pytest-aiohttp, pytest-cov
python-dateutil==2.8.1 # via alembic
python-editor==1.0.4 # via alembic
pytz==2020.1 # via babel
pyyaml==5.3.1 # via trafaret-config
regex==2020.7.14 # via black
requests==2.24.0 # via sphinx
restructuredtext-lint==1.3.1 # via doc8
six==1.15.0 # via doc8, packaging, python-dateutil
snowballstemmer==2.0.0 # via sphinx
sphinx-autodoc-typehints==1.10.3 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
sphinx==2.4.4 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in, sphinx-autodoc-typehints
sphinxcontrib-applehelp==1.0.2 # via sphinx
sphinxcontrib-devhelp==1.0.2 # via sphinx
sphinxcontrib-htmlhelp==1.0.3 # via sphinx
sphinxcontrib-jsmath==1.0.1 # via sphinx
sphinxcontrib-qthelp==1.0.3 # via sphinx
sphinxcontrib-serializinghtml==1.1.4 # via sphinx
sphinxcontrib-websupport==1.2.0 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
sqlalchemy[postgresql_psycopg2binary]==1.3.18 # via aiopg, alembic
stevedore==3.2.0 # via doc8
toml==0.10.1 # via black
trafaret==2.0.2 # via trafaret-config
trafaret_config==2.0.2 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
typed-ast==1.4.1 # via black, mypy
typing-extensions==3.7.4.2 # via mypy
urllib3==1.25.9 # via requests
uvloop==0.14.0 # via -r create_aio_app/template/{{cookiecutter.project_name}}/requirements/development.in
watchgod==0.6 # via aiohttp-devtools
wcwidth==0.2.5 # via pytest
yarl==1.4.2 # via aiohttp

mypy==0.770
flake8==3.7.9
pytest==5.4.1
pytest-cov==2.8.1
pytest-aiohttp==0.3.0
black==19.10b0
py-spy==0.3.3

aiohttp-devtools==0.13.1
aiohttp-debugtoolbar==0.6.0
# The following packages are considered to be unsafe in a requirements file:
# setuptools
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it looks like input from pip-compile, are u sure that it's correct for .in file?

Sphinx==2.4.4
sphinx-autodoc-typehints==1.10.3
sphinxcontrib-websupport==1.2.0
doc8==0.8.0

# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile documentation.txt
#
alabaster==0.7.12 # via -r documentation.txt, sphinx
babel==2.8.0 # via -r documentation.txt, sphinx
certifi==2020.6.20 # via -r documentation.txt, requests
chardet==3.0.4 # via -r documentation.txt, doc8, requests
doc8==0.8.0 # via -r documentation.txt
docutils==0.16 # via -r documentation.txt, doc8, restructuredtext-lint, sphinx
idna==2.10 # via -r documentation.txt, requests
imagesize==1.2.0 # via -r documentation.txt, sphinx
jinja2==2.11.2 # via -r documentation.txt, sphinx
markupsafe==1.1.1 # via -r documentation.txt, jinja2
packaging==20.4 # via -r documentation.txt, sphinx
pbr==5.4.5 # via -r documentation.txt, stevedore
pygments==2.6.1 # via -r documentation.txt, sphinx
pyparsing==2.4.7 # via -r documentation.txt, packaging
pytz==2020.1 # via -r documentation.txt, babel
requests==2.24.0 # via -r documentation.txt, sphinx
restructuredtext-lint==1.3.1 # via -r documentation.txt, doc8
six==1.15.0 # via -r documentation.txt, doc8, packaging
snowballstemmer==2.0.0 # via -r documentation.txt, sphinx
sphinx-autodoc-typehints==1.10.3 # via -r documentation.txt
sphinx==2.4.4 # via -r documentation.txt, sphinx-autodoc-typehints
sphinxcontrib-applehelp==1.0.2 # via -r documentation.txt, sphinx
sphinxcontrib-devhelp==1.0.2 # via -r documentation.txt, sphinx
sphinxcontrib-htmlhelp==1.0.3 # via -r documentation.txt, sphinx
sphinxcontrib-jsmath==1.0.1 # via -r documentation.txt, sphinx
sphinxcontrib-qthelp==1.0.3 # via -r documentation.txt, sphinx
sphinxcontrib-serializinghtml==1.1.4 # via -r documentation.txt, sphinx
sphinxcontrib-websupport==1.2.0 # via -r documentation.txt
stevedore==3.2.0 # via -r documentation.txt, doc8
urllib3==1.25.9 # via -r documentation.txt, requests

# The following packages are considered to be unsafe in a requirements file:
# setuptools
Original file line number Diff line number Diff line change
@@ -1,4 +1,39 @@
Sphinx==2.4.4
sphinx-autodoc-typehints==1.10.3
sphinxcontrib-websupport==1.2.0
doc8==0.8.0
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile --output-file=../../requirements/documentation.txt documentation.in
#
alabaster==0.7.12 # via -r documentation.in, sphinx
babel==2.8.0 # via -r documentation.in, sphinx
certifi==2020.6.20 # via -r documentation.in, requests
chardet==3.0.4 # via -r documentation.in, doc8, requests
doc8==0.8.0 # via -r documentation.in
docutils==0.16 # via -r documentation.in, doc8, restructuredtext-lint, sphinx
idna==2.10 # via -r documentation.in, requests
imagesize==1.2.0 # via -r documentation.in, sphinx
jinja2==2.11.2 # via -r documentation.in, sphinx
markupsafe==1.1.1 # via -r documentation.in, jinja2
packaging==20.4 # via -r documentation.in, sphinx
pbr==5.4.5 # via -r documentation.in, stevedore
pygments==2.6.1 # via -r documentation.in, sphinx
pyparsing==2.4.7 # via -r documentation.in, packaging
pytz==2020.1 # via -r documentation.in, babel
requests==2.24.0 # via -r documentation.in, sphinx
restructuredtext-lint==1.3.1 # via -r documentation.in, doc8
six==1.15.0 # via -r documentation.in, doc8, packaging
snowballstemmer==2.0.0 # via -r documentation.in, sphinx
sphinx-autodoc-typehints==1.10.3 # via -r documentation.in
sphinx==2.4.4 # via -r documentation.in, sphinx-autodoc-typehints
sphinxcontrib-applehelp==1.0.2 # via -r documentation.in, sphinx
sphinxcontrib-devhelp==1.0.2 # via -r documentation.in, sphinx
sphinxcontrib-htmlhelp==1.0.3 # via -r documentation.in, sphinx
sphinxcontrib-jsmath==1.0.1 # via -r documentation.in, sphinx
sphinxcontrib-qthelp==1.0.3 # via -r documentation.in, sphinx
sphinxcontrib-serializinghtml==1.1.4 # via -r documentation.in, sphinx
sphinxcontrib-websupport==1.2.0 # via -r documentation.in
stevedore==3.2.0 # via -r documentation.in, doc8
urllib3==1.25.9 # via -r documentation.in, requests

# The following packages are considered to be unsafe in a requirements file:
# setuptools
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
aiohttp==3.6.2
aiohttp_jinja2==1.2.0
trafaret_config==2.0.2
markdown2==2.3.7
aiopg[sa]==1.0.0
psycopg2-binary==2.8.4
alembic==1.4.1
aioredis==1.3.1
uvloop==0.14.0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In production.txt u can see that we don't add all requirements.

{%- if cookiecutter.use_postgres == 'y' %}
aiopg[sa]==1.0.0
...
{%- endif %}

it's important and we need to move this logic to .in files too.

Original file line number Diff line number Diff line change
@@ -1,15 +1,31 @@
aiohttp==3.6.2
aiohttp_jinja2==1.2.0
trafaret_config==2.0.2
markdown2==2.3.7
{%- if cookiecutter.use_postgres == 'y' %}
aiopg[sa]==1.0.0
psycopg2-binary==2.8.4
alembic==1.4.1
{%- endif %}
{%- if cookiecutter.use_redis == 'y' %}
aioredis==1.3.1
{%- endif %}
{%- if cookiecutter.use_uvloop == 'y' %}
uvloop==0.14.0
{%- endif %}
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile --output-file=requirements/production.txt requirements/production.in
#
aiohttp==3.6.2 # via -r requirements/production.in, aiohttp-jinja2
aiohttp_jinja2==1.2.0 # via -r requirements/production.in
aiopg[sa]==1.0.0 # via -r requirements/production.in
aioredis==1.3.1 # via -r requirements/production.in
alembic==1.4.1 # via -r requirements/production.in
async-timeout==3.0.1 # via aiohttp, aioredis
attrs==19.3.0 # via aiohttp
chardet==3.0.4 # via aiohttp
hiredis==1.1.0 # via aioredis
idna==2.10 # via yarl
jinja2==2.11.2 # via aiohttp-jinja2
mako==1.1.3 # via alembic
markdown2==2.3.7 # via -r requirements/production.in
markupsafe==1.1.1 # via jinja2, mako
multidict==4.7.6 # via aiohttp, yarl
psycopg2-binary==2.8.4 # via -r requirements/production.in, aiopg, sqlalchemy
python-dateutil==2.8.1 # via alembic
python-editor==1.0.4 # via alembic
pyyaml==5.3.1 # via trafaret-config
six==1.15.0 # via python-dateutil
sqlalchemy[postgresql_psycopg2binary]==1.3.18 # via aiopg, alembic
trafaret==2.0.2 # via trafaret-config
trafaret_config==2.0.2 # via -r requirements/production.in
uvloop==0.14.0 # via -r requirements/production.in
yarl==1.4.2 # via aiohttp

This file was deleted.

7 changes: 7 additions & 0 deletions create_aio_app/utils/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from pkg_resources import get_distribution, DistributionNotFound


try:
__version__ = get_distribution(__name__).version
except DistributionNotFound:
__version__ = 'unknown'
15 changes: 15 additions & 0 deletions create_aio_app/utils/constants.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import pathlib

__all__ = [
'TEMPLATE_DIR',
'DATABASE_TEMPLATE_DIRS',
'DATABASE_TEMPLATE_FILES',
'WAIT_SCRIPT_FILE',
]


TEMPLATE_NAME = 'template_project'
TEMPLATE_DIR = pathlib.Path(__file__).parent / TEMPLATE_NAME
DATABASE_TEMPLATE_DIRS = ['users', 'migrations', ]
DATABASE_TEMPLATE_FILES = ['alembic.ini', ]
WAIT_SCRIPT_FILE = 'utils/wait_script.py'
Loading