diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e857c28 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +node_modules +npm-debug.log +README.md +LICENSE +.babelrc +.eslintignore +.eslintrc.json +.gitignore +.npmignore +commitlint.config.js \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 5bec22c..8159d21 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,7 +28,7 @@ RUN apt-get update && apt-get install -y python3-setuptools \ RUN pip3 install --upgrade pip # Install pip requirements #ADD requirements.txt . -RUN python -m pip install -r trips/requirements.txt +RUN python -m pip install -r requirements.txt diff --git a/Makefile b/Makefile index 285f46a..ab7efac 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,12 @@ .DEFAULT_GOAL := test NODE_BIN=$(CURDIR)/node_modules/.bin -MANAGE_PY_PATH = python trips/manage.py +MANAGE_PY_PATH = python manage.py .PHONY: requirements update_db random_trips static help test build pull \ _build stop run restart attach shell destroy requirements: ## install development environment requirements - pip install -qr trips/requirements.txt --exists-action w + pip install -qr requirements.txt --exists-action w update_db: ## Install migrations $(MANAGE_PY_PATH) migrate @@ -22,7 +22,7 @@ help: ## display this help message @grep '^[a-zA-Z]' $(MAKEFILE_LIST) | sort | awk -F ':.*?## ' 'NF==2 {printf "\033[36m %-25s\033[0m %s\n", $$1, $$2}' test: ## Run unit tests for Trips app - cd trips; pytest -v + pytest -v build: destroy _build @@ -58,6 +58,7 @@ _move: rm -rf src/django_trips cp {setup.py,setup.cfg,README.md,MANIFEST.in,LICENSE} src/ cp -R trips/django_trips src/ + publish: _move python3 -m pip install --user --upgrade twine cd src/; python3 setup.py sdist bdist_wheel; python3 -m twine upload --skip-existing --repository pypi dist/* --verbose diff --git a/django-trips/__init__.py b/django-trips/__init__.py new file mode 100644 index 0000000..5cafea8 --- /dev/null +++ b/django-trips/__init__.py @@ -0,0 +1,3 @@ +""" +Your project description goes here. +""" diff --git a/trips/trips/asgi.py b/django-trips/asgi.py similarity index 81% rename from trips/trips/asgi.py rename to django-trips/asgi.py index 6ad4824..f3f2a50 100644 --- a/trips/trips/asgi.py +++ b/django-trips/asgi.py @@ -11,6 +11,6 @@ from django.core.asgi import get_asgi_application -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'trips.settings') +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django-trips.settings') application = get_asgi_application() diff --git a/trips/trips/settings.py b/django-trips/settings.py similarity index 97% rename from trips/trips/settings.py rename to django-trips/settings.py index d31a091..e442b5e 100644 --- a/trips/trips/settings.py +++ b/django-trips/settings.py @@ -54,7 +54,7 @@ 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] -ROOT_URLCONF = 'trips.urls' +ROOT_URLCONF = 'django-trips.urls' TEMPLATES = [ { @@ -72,7 +72,7 @@ }, ] -WSGI_APPLICATION = 'trips.wsgi.application' +WSGI_APPLICATION = 'django-trips.wsgi.application' # Database # https://docs.djangoproject.com/en/3.1/ref/settings/#databases diff --git a/trips/trips/urls.py b/django-trips/urls.py similarity index 100% rename from trips/trips/urls.py rename to django-trips/urls.py diff --git a/trips/trips/wsgi.py b/django-trips/wsgi.py similarity index 81% rename from trips/trips/wsgi.py rename to django-trips/wsgi.py index dec181a..23cc36e 100644 --- a/trips/trips/wsgi.py +++ b/django-trips/wsgi.py @@ -11,6 +11,6 @@ from django.core.wsgi import get_wsgi_application -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'trips.settings') +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django-trips.settings') application = get_wsgi_application() diff --git a/django_trips/__init__.py b/django_trips/__init__.py new file mode 100644 index 0000000..6b67db6 --- /dev/null +++ b/django_trips/__init__.py @@ -0,0 +1,7 @@ +""" +Your App description goes here. +""" + +__version__ = '0.2.7.6' + +default_app_config = 'django_trips.apps.DjangoTripsConfig' # pylint: disable=invalid-name diff --git a/trips/django_trips/admin.py b/django_trips/admin.py similarity index 100% rename from trips/django_trips/admin.py rename to django_trips/admin.py diff --git a/trips/django_trips/__init__.py b/django_trips/api/__init__.py similarity index 100% rename from trips/django_trips/__init__.py rename to django_trips/api/__init__.py diff --git a/trips/django_trips/api/filters.py b/django_trips/api/filters.py similarity index 100% rename from trips/django_trips/api/filters.py rename to django_trips/api/filters.py diff --git a/trips/django_trips/api/mixins.py b/django_trips/api/mixins.py similarity index 100% rename from trips/django_trips/api/mixins.py rename to django_trips/api/mixins.py diff --git a/trips/django_trips/api/paginators.py b/django_trips/api/paginators.py similarity index 100% rename from trips/django_trips/api/paginators.py rename to django_trips/api/paginators.py diff --git a/trips/django_trips/api/serializers.py b/django_trips/api/serializers.py similarity index 100% rename from trips/django_trips/api/serializers.py rename to django_trips/api/serializers.py diff --git a/trips/django_trips/api/__init__.py b/django_trips/api/tests/__init__.py similarity index 100% rename from trips/django_trips/api/__init__.py rename to django_trips/api/tests/__init__.py diff --git a/trips/django_trips/api/tests/test_views.py b/django_trips/api/tests/test_views.py similarity index 100% rename from trips/django_trips/api/tests/test_views.py rename to django_trips/api/tests/test_views.py diff --git a/trips/django_trips/api/urls.py b/django_trips/api/urls.py similarity index 100% rename from trips/django_trips/api/urls.py rename to django_trips/api/urls.py diff --git a/trips/django_trips/api/views.py b/django_trips/api/views.py similarity index 98% rename from trips/django_trips/api/views.py rename to django_trips/api/views.py index 74a0646..0902d5e 100644 --- a/trips/django_trips/api/views.py +++ b/django_trips/api/views.py @@ -45,11 +45,11 @@ class TripListCreateAPIView(generics.ListCreateAPIView): Examples: /api/trips/? - destination=islamabad%2Clahore%2Cfairy+meadows&name=trip + destination=islamabad,lahore,fairy+meadows + &name=trip &duration_from=1&duration_to=15 &price_from=500&price_to=8000 &date_from=2020-10-21&date_to=2020-11-11 - """ authentication_classes = [SessionAuthentication, BasicAuthentication] diff --git a/trips/django_trips/apps.py b/django_trips/apps.py similarity index 100% rename from trips/django_trips/apps.py rename to django_trips/apps.py diff --git a/trips/django_trips/api/tests/__init__.py b/django_trips/management/__init__.py similarity index 100% rename from trips/django_trips/api/tests/__init__.py rename to django_trips/management/__init__.py diff --git a/trips/django_trips/management/__init__.py b/django_trips/management/commands/__init__.py similarity index 100% rename from trips/django_trips/management/__init__.py rename to django_trips/management/commands/__init__.py diff --git a/trips/django_trips/management/commands/generate_trips.py b/django_trips/management/commands/generate_trips.py similarity index 100% rename from trips/django_trips/management/commands/generate_trips.py rename to django_trips/management/commands/generate_trips.py diff --git a/trips/django_trips/management/commands/__init__.py b/django_trips/management/tests/__init__.py similarity index 100% rename from trips/django_trips/management/commands/__init__.py rename to django_trips/management/tests/__init__.py diff --git a/trips/django_trips/management/tests/test_generate_trips.py b/django_trips/management/tests/test_generate_trips.py similarity index 100% rename from trips/django_trips/management/tests/test_generate_trips.py rename to django_trips/management/tests/test_generate_trips.py diff --git a/trips/django_trips/managers.py b/django_trips/managers.py similarity index 100% rename from trips/django_trips/managers.py rename to django_trips/managers.py diff --git a/trips/django_trips/migrations/0001_initial.py b/django_trips/migrations/0001_initial.py similarity index 100% rename from trips/django_trips/migrations/0001_initial.py rename to django_trips/migrations/0001_initial.py diff --git a/trips/django_trips/management/tests/__init__.py b/django_trips/migrations/__init__.py similarity index 100% rename from trips/django_trips/management/tests/__init__.py rename to django_trips/migrations/__init__.py diff --git a/trips/django_trips/mixins.py b/django_trips/mixins.py similarity index 100% rename from trips/django_trips/mixins.py rename to django_trips/mixins.py diff --git a/trips/django_trips/models.py b/django_trips/models.py similarity index 100% rename from trips/django_trips/models.py rename to django_trips/models.py diff --git a/trips/django_trips/tests.py b/django_trips/tests.py similarity index 100% rename from trips/django_trips/tests.py rename to django_trips/tests.py diff --git a/trips/django_trips/migrations/__init__.py b/django_trips/tests/__init__.py similarity index 100% rename from trips/django_trips/migrations/__init__.py rename to django_trips/tests/__init__.py diff --git a/trips/django_trips/tests/factories.py b/django_trips/tests/factories.py similarity index 100% rename from trips/django_trips/tests/factories.py rename to django_trips/tests/factories.py diff --git a/trips/django_trips/tests/test_models.py b/django_trips/tests/test_models.py similarity index 100% rename from trips/django_trips/tests/test_models.py rename to django_trips/tests/test_models.py diff --git a/trips/django_trips/urls.py b/django_trips/urls.py similarity index 100% rename from trips/django_trips/urls.py rename to django_trips/urls.py diff --git a/trips/django_trips/views.py b/django_trips/views.py similarity index 100% rename from trips/django_trips/views.py rename to django_trips/views.py diff --git a/docker-compose.yml b/docker-compose.yml index ef293da..5b35b3b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,7 +15,7 @@ services: # - mysql_data:/var/lib/mysql trips: - command: bash -c 'while true; do python trips/manage.py runserver 0.0.0.0:8000; sleep 2; done' + command: bash -c 'while true; do python manage.py runserver 0.0.0.0:8000; sleep 2; done' container_name: djangotrips.django depends_on: - tripsdb diff --git a/trips/manage.py b/manage.py similarity index 88% rename from trips/manage.py rename to manage.py index fcdbd5b..dc4f7c6 100755 --- a/trips/manage.py +++ b/manage.py @@ -6,7 +6,7 @@ def main(): """Run administrative tasks.""" - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'trips.settings') + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django-trips.settings') try: from django.core.management import execute_from_command_line except ImportError as exc: diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..ead54b7 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,3 @@ +[pytest] +DJANGO_SETTINGS_MODULE=django-trips.settings +python_files = test_*.py \ No newline at end of file diff --git a/trips/requirements.txt b/requirements.txt similarity index 100% rename from trips/requirements.txt rename to requirements.txt diff --git a/setup.cfg b/setup.cfg index e92e6ee..9366e9f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,5 @@ [metadata] name = django-trips -version = 0.2.7.5 description = A Django Rest API for fetching and creating trips and their schedules. long_description = file: README.md url = https://github.com/awaisdar001/django-trips diff --git a/setup.py b/setup.py index 92d4f4c..721cb81 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,106 @@ -from setuptools import setup +import os +import re + +from setuptools import setup, setup, find_packages + +README = open(os.path.join(os.path.dirname(__file__), 'README.md')).read() + + +def get_version(*file_paths): + """ + Extract the version string from the file at the given relative path fragments. + """ + filename = os.path.join(os.path.dirname(__file__), *file_paths) + version_file = open(filename).read() + version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", + version_file, re.M) + if version_match: + return version_match.group(1) + raise RuntimeError('Unable to find version string.') + + +def package_data(pkg, root_list): + """ + Generic function to find package_data for `pkg` under `root`. + """ + data = [] + for root in root_list: + for dirname, _, files in os.walk(os.path.join(pkg, root)): + for fname in files: + data.append(os.path.relpath(os.path.join(dirname, fname), pkg)) + + return {pkg: data} + + +def is_requirement(line): + """ + Return True if the requirement line is a package requirement. + + Returns: + bool: True if the line is not blank, a comment, a URL, or an included file + """ + return not ( + line == '' or + line.startswith('-r') or + line.startswith('#') or + line.startswith('-e') or + line.startswith('git+') + ) + + +def load_requirements(*requirements_paths): + """ + Load all requirements from the specified requirements files. + + Returns: + list: Requirements file relative path strings + """ + requirements = set() + for path in requirements_paths: + requirements.update( + line.split('#')[0].strip() for line in open(path).readlines() + if is_requirement(line.strip()) + ) + return list(requirements) + + +VERSION = get_version('django_trips', '__init__.py') setup( - long_description_content_type='text/markdown' + name='django - trips', + version=VERSION, + description='A Django Rest API for fetching and creating trips and their schedules.', + long_description=README, + long_description_content_type='text/markdown', + url='https://github.com/awaisdar001/django-trips', + author='Awais Jibran', + author_email='awaisdar001@gmail.com', + license='MIT License', + keywords='Django trips', + packages=['django_trips'], + install_requires=['setuptools'], + classifiers=[ + 'Environment :: Web Environment', + 'Framework :: Django', + 'Framework :: Django :: 2.2', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: MIT License', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3 :: Only', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Topic :: Internet :: WWW/HTTP', + 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', + ], + include_package_data=True, + package_data=package_data("django_trips", ["static"]), + entery_points={ + 'django_trips': [ + 'django_trips = django_trips' + ] + }, + ) diff --git a/trips/django_trips/tests/__init__.py b/trips/django_trips/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/trips/pytest.ini b/trips/pytest.ini deleted file mode 100644 index 4fd0dee..0000000 --- a/trips/pytest.ini +++ /dev/null @@ -1,3 +0,0 @@ -[pytest] -DJANGO_SETTINGS_MODULE=trips.settings -python_files = test_*.py \ No newline at end of file diff --git a/trips/trips/__init__.py b/trips/trips/__init__.py deleted file mode 100644 index e69de29..0000000