From 27428233eced1e333159b90104f024e351e64b00 Mon Sep 17 00:00:00 2001 From: David Kerkeslager Date: Fri, 26 Feb 2021 15:09:22 -0500 Subject: [PATCH] Set up to be distributed as a PyPi package --- MANIFEST.in | 3 ++ core/__init__.py | 0 core/asgi.py | 16 ------- core/settings.py | 122 ----------------------------------------------- core/urls.py | 22 --------- core/wsgi.py | 16 ------- manage.py | 22 --------- setup.py | 30 ++++++++++++ tickle/urls.py | 2 +- 9 files changed, 34 insertions(+), 199 deletions(-) create mode 100644 MANIFEST.in delete mode 100644 core/__init__.py delete mode 100644 core/asgi.py delete mode 100644 core/settings.py delete mode 100644 core/urls.py delete mode 100644 core/wsgi.py delete mode 100755 manage.py create mode 100644 setup.py diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..adb4883 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,3 @@ +include LICENSE +include README.md +recursive-include tickle/templates *.html diff --git a/core/__init__.py b/core/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/core/asgi.py b/core/asgi.py deleted file mode 100644 index 99c11e6..0000000 --- a/core/asgi.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -ASGI config for core project. - -It exposes the ASGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/3.1/howto/deployment/asgi/ -""" - -import os - -from django.core.asgi import get_asgi_application - -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings') - -application = get_asgi_application() diff --git a/core/settings.py b/core/settings.py deleted file mode 100644 index 296d506..0000000 --- a/core/settings.py +++ /dev/null @@ -1,122 +0,0 @@ -""" -Django settings for core project. - -Generated by 'django-admin startproject' using Django 3.1.7. - -For more information on this file, see -https://docs.djangoproject.com/en/3.1/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/3.1/ref/settings/ -""" - -from pathlib import Path - -# Build paths inside the project like this: BASE_DIR / 'subdir'. -BASE_DIR = Path(__file__).resolve().parent.parent - - -# Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = '1td56sx9ljw1y0n-!n1#k(359t09b7k28w9j4y8ilqllcbcsih' - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True - -ALLOWED_HOSTS = [] - - -# Application definition - -INSTALLED_APPS = [ - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', - - 'tickle', -] - -MIDDLEWARE = [ - 'django.middleware.security.SecurityMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', -] - -ROOT_URLCONF = 'core.urls' - -TEMPLATES = [ - { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - ], - }, - }, -] - -WSGI_APPLICATION = 'core.wsgi.application' - - -# Database -# https://docs.djangoproject.com/en/3.1/ref/settings/#databases - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': BASE_DIR / 'db.sqlite3', - } -} - - -# Password validation -# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators - -AUTH_PASSWORD_VALIDATORS = [ - { - 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', - }, -] - - -# Internationalization -# https://docs.djangoproject.com/en/3.1/topics/i18n/ - -LANGUAGE_CODE = 'en-us' - -TIME_ZONE = 'UTC' - -USE_I18N = True - -USE_L10N = True - -USE_TZ = True - - -# Static files (CSS, JavaScript, Images) -# https://docs.djangoproject.com/en/3.1/howto/static-files/ - -STATIC_URL = '/static/' diff --git a/core/urls.py b/core/urls.py deleted file mode 100644 index 0d79c71..0000000 --- a/core/urls.py +++ /dev/null @@ -1,22 +0,0 @@ -"""core URL Configuration - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/3.1/topics/http/urls/ -Examples: -Function views - 1. Add an import: from my_app import views - 2. Add a URL to urlpatterns: path('', views.home, name='home') -Class-based views - 1. Add an import: from other_app.views import Home - 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') -Including another URLconf - 1. Import the include() function: from django.urls import include, path - 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) -""" -from django.contrib import admin -from django.urls import include, path - -urlpatterns = [ - path('admin/', admin.site.urls), - path('climbing/', include('tickle.urls')), -] diff --git a/core/wsgi.py b/core/wsgi.py deleted file mode 100644 index 24617d3..0000000 --- a/core/wsgi.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -WSGI config for core project. - -It exposes the WSGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/ -""" - -import os - -from django.core.wsgi import get_wsgi_application - -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings') - -application = get_wsgi_application() diff --git a/manage.py b/manage.py deleted file mode 100755 index f2a662c..0000000 --- a/manage.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env python -"""Django's command-line utility for administrative tasks.""" -import os -import sys - - -def main(): - """Run administrative tasks.""" - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings') - try: - from django.core.management import execute_from_command_line - except ImportError as exc: - raise ImportError( - "Couldn't import Django. Are you sure it's installed and " - "available on your PYTHONPATH environment variable? Did you " - "forget to activate a virtual environment?" - ) from exc - execute_from_command_line(sys.argv) - - -if __name__ == '__main__': - main() diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..741bd55 --- /dev/null +++ b/setup.py @@ -0,0 +1,30 @@ +import pathlib +from setuptools import setup, find_packages +HERE = pathlib.Path(__file__).parent +VERSION = '0.0.4' +PACKAGE_NAME = 'django_predrill_tickle' +AUTHOR = 'David Kerkeslager' +AUTHOR_EMAIL = 'david@kerkeslager.com' +URL = 'https://github.com/kerkeslager/tickle' +LICENSE = 'AGPL3.0' +DESCRIPTION = 'A pluggable Django app for keeping rock climbing ticklists' +LONG_DESCRIPTION = (HERE / "README.md").read_text() +LONG_DESC_TYPE = "text/markdown" +INSTALL_REQUIRES = [ + 'Django', +] + +setup( + name=PACKAGE_NAME, + version=VERSION, + description=DESCRIPTION, + long_description=LONG_DESCRIPTION, + long_description_content_type=LONG_DESC_TYPE, + author=AUTHOR, + license=LICENSE, + author_email=AUTHOR_EMAIL, + url=URL, + install_requires=INSTALL_REQUIRES, + include_package_data=True, + packages=['tickle'], +) diff --git a/tickle/urls.py b/tickle/urls.py index 6efc761..fc96047 100644 --- a/tickle/urls.py +++ b/tickle/urls.py @@ -8,7 +8,7 @@ from . import views app_name = 'tickle' urlpatterns = ( - path('area', views.area_list, name='area-list'), + path('', views.area_list, name='area-list'), path('area/', views.area_detail, name='area-detail'), path('attempt', views.attempt_list, name='attempt-list'), path('boulder/', views.boulder_detail, name='boulder-detail'), -- 2.20.1