-
Notifications
You must be signed in to change notification settings - Fork 2
/
requirements.in
149 lines (149 loc) · 7.05 KB
/
requirements.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# Adds async view support to Django REST framework
adrf
# Library for asynchronous handling of files.
aiofile
# OAuth2 library used for our custom Discord Integration-- the non-bot part
authlib
# Handles formatting of Python code.
black
# BeautifulSoup is an HTML/XML processing library which we primarily use to manipulate HTML structures before
# extracting their text for the text version of emails
bs4
# Celery is our asynchronus task queue library. Tasks that shouldn't interrupt the current
# request, but should be handled in the background (or periodically, like cron), are scheduled
# and handled by celery.
celery[redis]
# Channels handles async connections to Django that can be subscribed and published to.
# This is used for managing websockets.
channels>=4.1.0,<5.0.0
# Uses Redis as the backend for Channels
channels-redis
# Checks how many lines are run during tests
coverage
# Base websocket server used by Django-channels
channels[daphne]
# DDT 'Data Driven Tests'-- allows us to parameterize tests so we can write them once with several different inputs.
ddt
# The library we use for our Discord bot
discord-py-interactions
# A class type that allows you to access keys in a dictionary as though they're props. Useful for duck-typing tricks.
dotted-dict
# The Django web framework is Artconomy's base web framework.
Django>=5.1,<6
# Application which handles avatars for users, including default avatars.
django-avatar
# Allows emails to be sent asynchronously via celery
django-celery-email
# Utilities for deleting orphaned files. Django doesn't delete files from the HD automatically
# and though we try to do so, it's possible that some files may be orphaned, especially in the thumbnails.
django_cleanup
# Content Security Policy plugin for Django
django-csp
# Model base for our custom Django user model, allowing email login.
django-custom-user
# Hitcount application-- helps users know many views their submissions are getting, for instance.
git+https://github.com/thornomad/django-hitcount.git@fcf399698455d656810a9456ccd0b42a8290969f#egg=django-hitcount
# Django removed the included markdown processing functionality in templates and this library picks
# up where it left off.
django-markdown2
# Adds model fields for tracking money, creating a composite field that has both a currency column and an amount colum
# under the hood transparently.
# Currently pinned to 3.2 until this issue is resolved: https://github.com/django-money/django-money/issues/731
django-money==3.2
# Allows for some preprocessing of emails being sent out to do neat things like adjust URLs and CSS classes
django-premailer
# Library for providing One Time Passwords for 2FA apps
django-otp
# Gives us access to advisory locks for Postgres
django-pglock
# Redis support for Django's caching system
django-redis
# The Django REST Framework is the primary library for constructing our API endpoints and handling their serialization
djangorestframework
# Extension for Django REST Framework to allow bulk updates of items
djangorestframework-bulk
# Django REST field for completing a recaptcha-compatible captcha
git+https://github.com/Artconomy/[email protected]#egg=django-rest-recaptcha
# Allows for Django REST endpoints to respond in CSV format when enabled
djangorestframework-csv
# Stores old versions of a model in the database so they can be reverted or reviewed. We use this on order comments
# to make sure no one is pulling a sneaky during disputes, for instance.
django-reversion
# Generate sitemaps via celery task for serving by NginX
django-static-sitemaps
# Sendgrid support for sending email. I'm not entirely sure we're actually using this yet, but we might be.
django-sendgrid-v5
# Allows us to disable Django's signal feature-- useful sometimes during tests.
django-signal-disabler
# Allows us to read and parse a rollup manifest in order to render the correct script/link tags in the index HTML
django-vite
# Library for calling Dwolla services. Deprecated since we no longer use Dwolla.
dwollav2
# Used to generate thumbnails for submissions.
easy_thumbnails
# Factories for testing-- allowing us to create users, submissions, etc on the fly to test something.
factory-boy
# Freezes time. Or rather, freezes the output of time libraries such that you can depend on them to return a particular
# value during tests.
freezegun
# GeoIP2 for Region detection
geoip2
# Git analysis library-- used for getting context about the current version of the app.
GitPython
# After using bs4 to massage the markup, we use html2text to convert a section of HTML to markdown-style text.
html2text
# Sorts imports in Python files.
isort
# Not actually used by the project itself, but helpful anywhere we're using the Django console-- iPython is a massively
# improved Python REPL. Django replaces the standard interactive Python interface with this when present.
ipython
# Utilities for lazy evaluation of properties on an object.
lazy
# Rust-based line item calculation library. Used for totaling up invoices.
rust/line_items/target/wheels/line_items-0.1.0.tar.gz
# The Luhn algorithm is used to check that a credit card number is technically valid. This is no longer used,
# but code depending on it has not been removed.
luhn
# XML Parsing library we use with BeautifulSoup for sitemap inclusions.
lxml
# A non-Django specific library for markdown processing. TODO: Investigate if we can remove this library since
# django-markdown2 doubtless has a markdown processor inside of it.
markdown
# Builds Python modules from Rust code.
maturin
# pandas-- data analysis and manipulation library. At the time of writing we're only using it to handle 'Business Day'
# calendar calculations, but we're liable to use it for more in time.
pandas
# Django uses this driver for communicating with the PostgreSQL database.
psycopg[binary]
# Library which contains ISO-standard information about all countries on earth. Needed for address handling.
pycountry
# Awesome library for date manipulation. I have no idea why it isn't in the standard library. Allows for things
# like 'relative deltas' so you can do things like add x number of months to a date.
python-dateutil
# Python library for the Telegram bot, used for 2FA
python-telegram-bot>=20.0.0,<21.0.0
# Used for handling Time Zone data in Python and imbuing naiive datetimes with TZ information.
pytz
# Used to generate QR codes
qrcode
# easy_thumbnails uses this to do some thumbnailing work.
reportlab
# The requests library is the most useful HTTP library in the Python ecosystem. It should probably be in the standard
# library, and I think they were considering this at one point.
requests
# Code quality linter
ruff
# Library for generating shortcodes, built atop UUIDs but serializable to ASCII strings. Includes Django model and REST
# framework fields
short-stuff
# Library for interacting with Stripe's API
stripe
# Used by easy_thumbnails to generate SVG thumbnails.
svglib
# Library for working with tracebacks. Used for testing.
tblib
# ASGI webserver for Python. Used for the production ASGI server, which handles websocket requests.
uvicorn[standard]
# uWSGI webserver for Python. Handles standard HTTP requests in production.
uWSGI