kamau1 commited on
Commit
ad4d1e4
Β·
1 Parent(s): c642d98

fix: remove unnecessary services like prometheus

Browse files
.env.example CHANGED
@@ -1,25 +1,23 @@
1
- # ============================================
2
- # APPLICATION CONFIGURATION
3
- # ============================================
4
- APP_NAME=SwiftOps API
5
- APP_VERSION=1.0.0
6
- DEBUG=True
7
- ENVIRONMENT=development
8
- LOG_LEVEL=INFO
9
 
10
- # ============================================
11
- # DATABASE (SUPABASE POSTGRESQL)
12
- # ============================================
13
- DATABASE_URL=postgresql://postgres:password@db.your-project.supabase.co:5432/postgres
14
- SUPABASE_URL=https://your-project.supabase.co
15
- SUPABASE_ANON_KEY=your-anon-key-here
16
- SUPABASE_SERVICE_KEY=your-service-role-key-here
17
 
18
- # ============================================
19
- # JWT AUTHENTICATION
20
- # ============================================
21
- SECRET_KEY=your-secret-key-change-this-in-production
22
- ALGORITHM=HS256
23
- ACCESS_TOKEN_EXPIRE_MINUTES=30
24
- REFRESH_TOKEN_EXPIRE_DAYS=7
25
 
 
 
 
 
 
 
 
 
1
+ # SwiftOps Backend - Environment Configuration for Hugging Face Spaces
2
+ # Copy these to your HF Space Secrets
 
 
 
 
 
 
3
 
4
+ # Application Settings
5
+ APP_NAME=SwiftOps API
6
+ ENVIRONMENT=production
7
+ DEBUG=False
8
+ SECRET_KEY=your-secret-key-here-generate-a-strong-random-key
 
 
9
 
10
+ # Database - Supabase PostgreSQL (REQUIRED)
11
+ # Get these from your Supabase project settings
12
+ DATABASE_URL=postgresql://postgres:[YOUR-PASSWORD]@db.[YOUR-PROJECT-REF].supabase.co:5432/postgres
13
+ SUPABASE_URL=https://[YOUR-PROJECT-REF].supabase.co
14
+ SUPABASE_KEY=your-anon-public-key
15
+ SUPABASE_SERVICE_KEY=your-service-role-secret-key
 
16
 
17
+ # Optional: External Services (can be added later)
18
+ # CLOUDINARY_CLOUD_NAME=your-cloud-name
19
+ # CLOUDINARY_API_KEY=your-api-key
20
+ # CLOUDINARY_API_SECRET=your-api-secret
21
+ # RESEND_API_KEY=your-resend-key
22
+ # GOOGLE_MAPS_API_KEY=your-google-maps-key
23
+ # SENTRY_DSN=your-sentry-dsn
Dockerfile CHANGED
@@ -2,16 +2,14 @@ FROM python:3.11-slim
2
 
3
  WORKDIR /app
4
 
5
- # Install system dependencies
6
  RUN apt-get update && apt-get install -y \
7
  gcc \
8
- postgresql-client \
9
  && rm -rf /var/lib/apt/lists/*
10
 
11
- # Copy requirements
12
  COPY requirements.txt .
13
-
14
- # Install Python dependencies
15
  RUN pip install --no-cache-dir -r requirements.txt
16
 
17
  # Copy application code
@@ -19,8 +17,8 @@ COPY src/ ./src/
19
  COPY alembic/ ./alembic/
20
  COPY alembic.ini .
21
 
22
- # Expose port (Hugging Face Spaces uses port 7860 by default)
23
  EXPOSE 7860
24
 
25
- # Run database migrations and start application
26
- CMD alembic upgrade head && uvicorn src.app.main:app --host 0.0.0.0 --port 7860
 
2
 
3
  WORKDIR /app
4
 
5
+ # Install minimal system dependencies
6
  RUN apt-get update && apt-get install -y \
7
  gcc \
8
+ libpq-dev \
9
  && rm -rf /var/lib/apt/lists/*
10
 
11
+ # Copy requirements and install Python dependencies
12
  COPY requirements.txt .
 
 
13
  RUN pip install --no-cache-dir -r requirements.txt
14
 
15
  # Copy application code
 
17
  COPY alembic/ ./alembic/
18
  COPY alembic.ini .
19
 
20
+ # Expose port (Hugging Face Spaces uses port 7860)
21
  EXPOSE 7860
22
 
23
+ # Run application (migrations handled separately if needed)
24
+ CMD uvicorn src.app.main:app --host 0.0.0.0 --port 7860
docs/hflogs/runtimeerror.txt ADDED
@@ -0,0 +1,733 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ===== Build Queued at 2025-11-15 18:32:58 / Commit SHA: c642d98 =====
2
+
3
+ --> FROM docker.io/library/python:3.11-slim@sha256:e4676722fba839e2e5cdb844a52262b43e90e56dbd55b7ad953ee3615ad7534f
4
+ DONE 0.0s
5
+
6
+ --> WORKDIR /app
7
+ CACHED
8
+
9
+ --> Restoring cache
10
+ DONE 1.1s
11
+
12
+ --> RUN apt-get update && apt-get install -y gcc postgresql-client && rm -rf /var/lib/apt/lists/*
13
+ Get:1 http://deb.debian.org/debian trixie InRelease [140 kB]
14
+ Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
15
+ Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
16
+ Get:4 http://deb.debian.org/debian trixie/main amd64 Packages [9670 kB]
17
+ Get:5 http://deb.debian.org/debian trixie-updates/main amd64 Packages [5412 B]
18
+ Get:6 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [71.4 kB]
19
+ Fetched 9978 kB in 1s (13.7 MB/s)
20
+ Reading package lists...
21
+ Reading package lists...
22
+ Building dependency tree...
23
+ Reading state information...
24
+ The following additional packages will be installed:
25
+ binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-14
26
+ cpp-14-x86-64-linux-gnu cpp-x86-64-linux-gnu gcc-14 gcc-14-x86-64-linux-gnu
27
+ gcc-x86-64-linux-gnu krb5-locales libasan8 libatomic1 libbinutils
28
+ libc-dev-bin libc6-dev libcc1-0 libcom-err2 libcrypt-dev libctf-nobfd0
29
+ libctf0 libgcc-14-dev libgdbm-compat4t64 libgomp1 libgprofng0
30
+ libgssapi-krb5-2 libhwasan0 libisl23 libitm1 libjansson4 libk5crypto3
31
+ libkeyutils1 libkrb5-3 libkrb5support0 libldap-common libldap2 liblsan0
32
+ libmpc3 libmpfr6 libperl5.40 libpq5 libquadmath0 libsasl2-2 libsasl2-modules
33
+ libsasl2-modules-db libsframe1 libtsan2 libubsan1 linux-libc-dev manpages
34
+ manpages-dev perl perl-modules-5.40 postgresql-client-17
35
+ postgresql-client-common rpcsvc-proto sensible-utils
36
+ Suggested packages:
37
+ binutils-doc gprofng-gui binutils-gold cpp-doc gcc-14-locales cpp-14-doc
38
+ gcc-multilib make autoconf automake libtool flex bison gdb gcc-doc
39
+ gcc-14-multilib gcc-14-doc gdb-x86-64-linux-gnu libc-devtools glibc-doc
40
+ krb5-doc krb5-user libsasl2-modules-gssapi-mit
41
+ | libsasl2-modules-gssapi-heimdal libsasl2-modules-ldap libsasl2-modules-otp
42
+ libsasl2-modules-sql man-browser perl-doc libterm-readline-gnu-perl
43
+ | libterm-readline-perl-perl libtap-harness-archive-perl postgresql-17
44
+ postgresql-doc-17
45
+ The following NEW packages will be installed:
46
+ binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-14
47
+ cpp-14-x86-64-linux-gnu cpp-x86-64-linux-gnu gcc gcc-14
48
+ gcc-14-x86-64-linux-gnu gcc-x86-64-linux-gnu krb5-locales libasan8
49
+ libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcom-err2
50
+ libcrypt-dev libctf-nobfd0 libctf0 libgcc-14-dev libgdbm-compat4t64 libgomp1
51
+ libgprofng0 libgssapi-krb5-2 libhwasan0 libisl23 libitm1 libjansson4
52
+ libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap-common libldap2
53
+ liblsan0 libmpc3 libmpfr6 libperl5.40 libpq5 libquadmath0 libsasl2-2
54
+ libsasl2-modules libsasl2-modules-db libsframe1 libtsan2 libubsan1
55
+ linux-libc-dev manpages manpages-dev perl perl-modules-5.40
56
+ postgresql-client postgresql-client-17 postgresql-client-common rpcsvc-proto
57
+ sensible-utils
58
+ 0 upgraded, 59 newly installed, 0 to remove and 6 not upgraded.
59
+ Need to get 71.5 MB of archives.
60
+ After this operation, 290 MB of additional disk space will be used.
61
+ Get:1 http://deb.debian.org/debian trixie/main amd64 sensible-utils all 0.0.25 [25.0 kB]
62
+ Get:2 http://deb.debian.org/debian trixie/main amd64 krb5-locales all 1.21.3-5 [101 kB]
63
+ Get:3 http://deb.debian.org/debian trixie/main amd64 manpages all 6.9.1-1 [1393 kB]
64
+ Get:4 http://deb.debian.org/debian trixie/main amd64 perl-modules-5.40 all 5.40.1-6 [3019 kB]
65
+ Get:5 http://deb.debian.org/debian trixie/main amd64 libgdbm-compat4t64 amd64 1.24-2 [50.3 kB]
66
+ Get:6 http://deb.debian.org/debian trixie/main amd64 libperl5.40 amd64 5.40.1-6 [4341 kB]
67
+ Get:7 http://deb.debian.org/debian trixie/main amd64 perl amd64 5.40.1-6 [267 kB]
68
+ Get:8 http://deb.debian.org/debian trixie/main amd64 libsframe1 amd64 2.44-3 [78.4 kB]
69
+ Get:9 http://deb.debian.org/debian trixie/main amd64 binutils-common amd64 2.44-3 [2509 kB]
70
+ Get:10 http://deb.debian.org/debian trixie/main amd64 libbinutils amd64 2.44-3 [534 kB]
71
+ Get:11 http://deb.debian.org/debian trixie/main amd64 libgprofng0 amd64 2.44-3 [808 kB]
72
+ Get:12 http://deb.debian.org/debian trixie/main amd64 libctf-nobfd0 amd64 2.44-3 [156 kB]
73
+ Get:13 http://deb.debian.org/debian trixie/main amd64 libctf0 amd64 2.44-3 [88.6 kB]
74
+ Get:14 http://deb.debian.org/debian trixie/main amd64 libjansson4 amd64 2.14-2+b3 [39.8 kB]
75
+ Get:15 http://deb.debian.org/debian trixie/main amd64 binutils-x86-64-linux-gnu amd64 2.44-3 [1014 kB]
76
+ Get:16 http://deb.debian.org/debian trixie/main amd64 binutils amd64 2.44-3 [265 kB]
77
+ Get:17 http://deb.debian.org/debian trixie/main amd64 libisl23 amd64 0.27-1 [659 kB]
78
+ Get:18 http://deb.debian.org/debian trixie/main amd64 libmpfr6 amd64 4.2.2-1 [729 kB]
79
+ Get:19 http://deb.debian.org/debian trixie/main amd64 libmpc3 amd64 1.3.1-1+b3 [52.2 kB]
80
+ Get:20 http://deb.debian.org/debian trixie/main amd64 cpp-14-x86-64-linux-gnu amd64 14.2.0-19 [11.0 MB]
81
+ Get:21 http://deb.debian.org/debian trixie/main amd64 cpp-14 amd64 14.2.0-19 [1280 B]
82
+ Get:22 http://deb.debian.org/debian trixie/main amd64 cpp-x86-64-linux-gnu amd64 4:14.2.0-1 [4840 B]
83
+ Get:23 http://deb.debian.org/debian trixie/main amd64 cpp amd64 4:14.2.0-1 [1568 B]
84
+ Get:24 http://deb.debian.org/debian trixie/main amd64 libcc1-0 amd64 14.2.0-19 [42.8 kB]
85
+ Get:25 http://deb.debian.org/debian trixie/main amd64 libgomp1 amd64 14.2.0-19 [137 kB]
86
+ Get:26 http://deb.debian.org/debian trixie/main amd64 libitm1 amd64 14.2.0-19 [26.0 kB]
87
+ Get:27 http://deb.debian.org/debian trixie/main amd64 libatomic1 amd64 14.2.0-19 [9308 B]
88
+ Get:28 http://deb.debian.org/debian trixie/main amd64 libasan8 amd64 14.2.0-19 [2725 kB]
89
+ Get:29 http://deb.debian.org/debian trixie/main amd64 liblsan0 amd64 14.2.0-19 [1204 kB]
90
+ Get:30 http://deb.debian.org/debian trixie/main amd64 libtsan2 amd64 14.2.0-19 [2460 kB]
91
+ Get:31 http://deb.debian.org/debian trixie/main amd64 libubsan1 amd64 14.2.0-19 [1074 kB]
92
+ Get:32 http://deb.debian.org/debian trixie/main amd64 libhwasan0 amd64 14.2.0-19 [1488 kB]
93
+ Get:33 http://deb.debian.org/debian trixie/main amd64 libquadmath0 amd64 14.2.0-19 [145 kB]
94
+ Get:34 http://deb.debian.org/debian trixie/main amd64 libgcc-14-dev amd64 14.2.0-19 [2672 kB]
95
+ Get:35 http://deb.debian.org/debian trixie/main amd64 gcc-14-x86-64-linux-gnu amd64 14.2.0-19 [21.4 MB]
96
+ Get:36 http://deb.debian.org/debian trixie/main amd64 gcc-14 amd64 14.2.0-19 [540 kB]
97
+ Get:37 http://deb.debian.org/debian trixie/main amd64 gcc-x86-64-linux-gnu amd64 4:14.2.0-1 [1436 B]
98
+ Get:38 http://deb.debian.org/debian trixie/main amd64 gcc amd64 4:14.2.0-1 [5136 B]
99
+ Get:39 http://deb.debian.org/debian trixie/main amd64 libc-dev-bin amd64 2.41-12 [58.2 kB]
100
+ Get:40 http://deb.debian.org/debian trixie/main amd64 linux-libc-dev all 6.12.57-1 [2692 kB]
101
+ Get:41 http://deb.debian.org/debian trixie/main amd64 libcrypt-dev amd64 1:4.4.38-1 [119 kB]
102
+ Get:42 http://deb.debian.org/debian trixie/main amd64 rpcsvc-proto amd64 1.4.3-1 [63.3 kB]
103
+ Get:43 http://deb.debian.org/debian trixie/main amd64 libc6-dev amd64 2.41-12 [1991 kB]
104
+ Get:44 http://deb.debian.org/debian trixie/main amd64 libcom-err2 amd64 1.47.2-3+b3 [25.0 kB]
105
+ Get:45 http://deb.debian.org/debian trixie/main amd64 libkrb5support0 amd64 1.21.3-5 [33.0 kB]
106
+ Get:46 http://deb.debian.org/debian trixie/main amd64 libk5crypto3 amd64 1.21.3-5 [81.5 kB]
107
+ Get:47 http://deb.debian.org/debian trixie/main amd64 libkeyutils1 amd64 1.6.3-6 [9456 B]
108
+ Get:48 http://deb.debian.org/debian trixie/main amd64 libkrb5-3 amd64 1.21.3-5 [326 kB]
109
+ Get:49 http://deb.debian.org/debian trixie/main amd64 libgssapi-krb5-2 amd64 1.21.3-5 [138 kB]
110
+ Get:50 http://deb.debian.org/debian trixie/main amd64 libldap-common all 2.6.10+dfsg-1 [35.1 kB]
111
+ Get:51 http://deb.debian.org/debian trixie/main amd64 libsasl2-modules-db amd64 2.1.28+dfsg1-9 [19.8 kB]
112
+ Get:52 http://deb.debian.org/debian trixie/main amd64 libsasl2-2 amd64 2.1.28+dfsg1-9 [57.5 kB]
113
+ Get:53 http://deb.debian.org/debian trixie/main amd64 libldap2 amd64 2.6.10+dfsg-1 [194 kB]
114
+ Get:54 http://deb.debian.org/debian trixie/main amd64 libpq5 amd64 17.6-0+deb13u1 [228 kB]
115
+ Get:55 http://deb.debian.org/debian trixie/main amd64 libsasl2-modules amd64 2.1.28+dfsg1-9 [66.7 kB]
116
+ Get:56 http://deb.debian.org/debian trixie/main amd64 manpages-dev all 6.9.1-1 [2122 kB]
117
+ Get:57 http://deb.debian.org/debian trixie/main amd64 postgresql-client-common all 278 [47.1 kB]
118
+ Get:58 http://deb.debian.org/debian trixie/main amd64 postgresql-client-17 amd64 17.6-0+deb13u1 [2031 kB]
119
+ Get:59 http://deb.debian.org/debian trixie/main amd64 postgresql-client all 17+278 [14.0 kB]
120
+ debconf: unable to initialize frontend: Dialog
121
+ debconf: (TERM is not set, so the dialog frontend is not usable.)
122
+ debconf: falling back to frontend: Readline
123
+ debconf: unable to initialize frontend: Readline
124
+ debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC entries checked: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.40.1 /usr/local/share/perl/5.40.1 /usr/lib/x86_64-linux-gnu/perl5/5.40 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.40 /usr/share/perl/5.40 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 8, <STDIN> line 59.)
125
+ debconf: falling back to frontend: Teletype
126
+ debconf: unable to initialize frontend: Teletype
127
+ debconf: (This frontend requires a controlling tty.)
128
+ debconf: falling back to frontend: Noninteractive
129
+ Fetched 71.5 MB in 0s (196 MB/s)
130
+ Selecting previously unselected package sensible-utils.
131
+ (Reading database ...
132
+ (Reading database ... 5%
133
+ (Reading database ... 10%
134
+ (Reading database ... 15%
135
+ (Reading database ... 20%
136
+ (Reading database ... 25%
137
+ (Reading database ... 30%
138
+ (Reading database ... 35%
139
+ (Reading database ... 40%
140
+ (Reading database ... 45%
141
+ (Reading database ... 50%
142
+ (Reading database ... 55%
143
+ (Reading database ... 60%
144
+ (Reading database ... 65%
145
+ (Reading database ... 70%
146
+ (Reading database ... 75%
147
+ (Reading database ... 80%
148
+ (Reading database ... 85%
149
+ (Reading database ... 90%
150
+ (Reading database ... 95%
151
+ (Reading database ... 100%
152
+ (Reading database ... 5644 files and directories currently installed.)
153
+ Preparing to unpack .../00-sensible-utils_0.0.25_all.deb ...
154
+ Unpacking sensible-utils (0.0.25) ...
155
+ Selecting previously unselected package krb5-locales.
156
+ Preparing to unpack .../01-krb5-locales_1.21.3-5_all.deb ...
157
+ Unpacking krb5-locales (1.21.3-5) ...
158
+ Selecting previously unselected package manpages.
159
+ Preparing to unpack .../02-manpages_6.9.1-1_all.deb ...
160
+ Unpacking manpages (6.9.1-1) ...
161
+ Selecting previously unselected package perl-modules-5.40.
162
+ Preparing to unpack .../03-perl-modules-5.40_5.40.1-6_all.deb ...
163
+ Unpacking perl-modules-5.40 (5.40.1-6) ...
164
+ Selecting previously unselected package libgdbm-compat4t64:amd64.
165
+ Preparing to unpack .../04-libgdbm-compat4t64_1.24-2_amd64.deb ...
166
+ Unpacking libgdbm-compat4t64:amd64 (1.24-2) ...
167
+ Selecting previously unselected package libperl5.40:amd64.
168
+ Preparing to unpack .../05-libperl5.40_5.40.1-6_amd64.deb ...
169
+ Unpacking libperl5.40:amd64 (5.40.1-6) ...
170
+ Selecting previously unselected package perl.
171
+ Preparing to unpack .../06-perl_5.40.1-6_amd64.deb ...
172
+ Unpacking perl (5.40.1-6) ...
173
+ Selecting previously unselected package libsframe1:amd64.
174
+ Preparing to unpack .../07-libsframe1_2.44-3_amd64.deb ...
175
+ Unpacking libsframe1:amd64 (2.44-3) ...
176
+ Selecting previously unselected package binutils-common:amd64.
177
+ Preparing to unpack .../08-binutils-common_2.44-3_amd64.deb ...
178
+ Unpacking binutils-common:amd64 (2.44-3) ...
179
+ Selecting previously unselected package libbinutils:amd64.
180
+ Preparing to unpack .../09-libbinutils_2.44-3_amd64.deb ...
181
+ Unpacking libbinutils:amd64 (2.44-3) ...
182
+ Selecting previously unselected package libgprofng0:amd64.
183
+ Preparing to unpack .../10-libgprofng0_2.44-3_amd64.deb ...
184
+ Unpacking libgprofng0:amd64 (2.44-3) ...
185
+ Selecting previously unselected package libctf-nobfd0:amd64.
186
+ Preparing to unpack .../11-libctf-nobfd0_2.44-3_amd64.deb ...
187
+ Unpacking libctf-nobfd0:amd64 (2.44-3) ...
188
+ Selecting previously unselected package libctf0:amd64.
189
+ Preparing to unpack .../12-libctf0_2.44-3_amd64.deb ...
190
+ Unpacking libctf0:amd64 (2.44-3) ...
191
+ Selecting previously unselected package libjansson4:amd64.
192
+ Preparing to unpack .../13-libjansson4_2.14-2+b3_amd64.deb ...
193
+ Unpacking libjansson4:amd64 (2.14-2+b3) ...
194
+ Selecting previously unselected package binutils-x86-64-linux-gnu.
195
+ Preparing to unpack .../14-binutils-x86-64-linux-gnu_2.44-3_amd64.deb ...
196
+ Unpacking binutils-x86-64-linux-gnu (2.44-3) ...
197
+ Selecting previously unselected package binutils.
198
+ Preparing to unpack .../15-binutils_2.44-3_amd64.deb ...
199
+ Unpacking binutils (2.44-3) ...
200
+ Selecting previously unselected package libisl23:amd64.
201
+ Preparing to unpack .../16-libisl23_0.27-1_amd64.deb ...
202
+ Unpacking libisl23:amd64 (0.27-1) ...
203
+ Selecting previously unselected package libmpfr6:amd64.
204
+ Preparing to unpack .../17-libmpfr6_4.2.2-1_amd64.deb ...
205
+ Unpacking libmpfr6:amd64 (4.2.2-1) ...
206
+ Selecting previously unselected package libmpc3:amd64.
207
+ Preparing to unpack .../18-libmpc3_1.3.1-1+b3_amd64.deb ...
208
+ Unpacking libmpc3:amd64 (1.3.1-1+b3) ...
209
+ Selecting previously unselected package cpp-14-x86-64-linux-gnu.
210
+ Preparing to unpack .../19-cpp-14-x86-64-linux-gnu_14.2.0-19_amd64.deb ...
211
+ Unpacking cpp-14-x86-64-linux-gnu (14.2.0-19) ...
212
+ Selecting previously unselected package cpp-14.
213
+ Preparing to unpack .../20-cpp-14_14.2.0-19_amd64.deb ...
214
+ Unpacking cpp-14 (14.2.0-19) ...
215
+ Selecting previously unselected package cpp-x86-64-linux-gnu.
216
+ Preparing to unpack .../21-cpp-x86-64-linux-gnu_4%3a14.2.0-1_amd64.deb ...
217
+ Unpacking cpp-x86-64-linux-gnu (4:14.2.0-1) ...
218
+ Selecting previously unselected package cpp.
219
+ Preparing to unpack .../22-cpp_4%3a14.2.0-1_amd64.deb ...
220
+ Unpacking cpp (4:14.2.0-1) ...
221
+ Selecting previously unselected package libcc1-0:amd64.
222
+ Preparing to unpack .../23-libcc1-0_14.2.0-19_amd64.deb ...
223
+ Unpacking libcc1-0:amd64 (14.2.0-19) ...
224
+ Selecting previously unselected package libgomp1:amd64.
225
+ Preparing to unpack .../24-libgomp1_14.2.0-19_amd64.deb ...
226
+ Unpacking libgomp1:amd64 (14.2.0-19) ...
227
+ Selecting previously unselected package libitm1:amd64.
228
+ Preparing to unpack .../25-libitm1_14.2.0-19_amd64.deb ...
229
+ Unpacking libitm1:amd64 (14.2.0-19) ...
230
+ Selecting previously unselected package libatomic1:amd64.
231
+ Preparing to unpack .../26-libatomic1_14.2.0-19_amd64.deb ...
232
+ Unpacking libatomic1:amd64 (14.2.0-19) ...
233
+ Selecting previously unselected package libasan8:amd64.
234
+ Preparing to unpack .../27-libasan8_14.2.0-19_amd64.deb ...
235
+ Unpacking libasan8:amd64 (14.2.0-19) ...
236
+ Selecting previously unselected package liblsan0:amd64.
237
+ Preparing to unpack .../28-liblsan0_14.2.0-19_amd64.deb ...
238
+ Unpacking liblsan0:amd64 (14.2.0-19) ...
239
+ Selecting previously unselected package libtsan2:amd64.
240
+ Preparing to unpack .../29-libtsan2_14.2.0-19_amd64.deb ...
241
+ Unpacking libtsan2:amd64 (14.2.0-19) ...
242
+ Selecting previously unselected package libubsan1:amd64.
243
+ Preparing to unpack .../30-libubsan1_14.2.0-19_amd64.deb ...
244
+ Unpacking libubsan1:amd64 (14.2.0-19) ...
245
+ Selecting previously unselected package libhwasan0:amd64.
246
+ Preparing to unpack .../31-libhwasan0_14.2.0-19_amd64.deb ...
247
+ Unpacking libhwasan0:amd64 (14.2.0-19) ...
248
+ Selecting previously unselected package libquadmath0:amd64.
249
+ Preparing to unpack .../32-libquadmath0_14.2.0-19_amd64.deb ...
250
+ Unpacking libquadmath0:amd64 (14.2.0-19) ...
251
+ Selecting previously unselected package libgcc-14-dev:amd64.
252
+ Preparing to unpack .../33-libgcc-14-dev_14.2.0-19_amd64.deb ...
253
+ Unpacking libgcc-14-dev:amd64 (14.2.0-19) ...
254
+ Selecting previously unselected package gcc-14-x86-64-linux-gnu.
255
+ Preparing to unpack .../34-gcc-14-x86-64-linux-gnu_14.2.0-19_amd64.deb ...
256
+ Unpacking gcc-14-x86-64-linux-gnu (14.2.0-19) ...
257
+ Selecting previously unselected package gcc-14.
258
+ Preparing to unpack .../35-gcc-14_14.2.0-19_amd64.deb ...
259
+ Unpacking gcc-14 (14.2.0-19) ...
260
+ Selecting previously unselected package gcc-x86-64-linux-gnu.
261
+ Preparing to unpack .../36-gcc-x86-64-linux-gnu_4%3a14.2.0-1_amd64.deb ...
262
+ Unpacking gcc-x86-64-linux-gnu (4:14.2.0-1) ...
263
+ Selecting previously unselected package gcc.
264
+ Preparing to unpack .../37-gcc_4%3a14.2.0-1_amd64.deb ...
265
+ Unpacking gcc (4:14.2.0-1) ...
266
+ Selecting previously unselected package libc-dev-bin.
267
+ Preparing to unpack .../38-libc-dev-bin_2.41-12_amd64.deb ...
268
+ Unpacking libc-dev-bin (2.41-12) ...
269
+ Selecting previously unselected package linux-libc-dev.
270
+ Preparing to unpack .../39-linux-libc-dev_6.12.57-1_all.deb ...
271
+ Unpacking linux-libc-dev (6.12.57-1) ...
272
+ Selecting previously unselected package libcrypt-dev:amd64.
273
+ Preparing to unpack .../40-libcrypt-dev_1%3a4.4.38-1_amd64.deb ...
274
+ Unpacking libcrypt-dev:amd64 (1:4.4.38-1) ...
275
+ Selecting previously unselected package rpcsvc-proto.
276
+ Preparing to unpack .../41-rpcsvc-proto_1.4.3-1_amd64.deb ...
277
+ Unpacking rpcsvc-proto (1.4.3-1) ...
278
+ Selecting previously unselected package libc6-dev:amd64.
279
+ Preparing to unpack .../42-libc6-dev_2.41-12_amd64.deb ...
280
+ Unpacking libc6-dev:amd64 (2.41-12) ...
281
+ Selecting previously unselected package libcom-err2:amd64.
282
+ Preparing to unpack .../43-libcom-err2_1.47.2-3+b3_amd64.deb ...
283
+ Unpacking libcom-err2:amd64 (1.47.2-3+b3) ...
284
+ Selecting previously unselected package libkrb5support0:amd64.
285
+ Preparing to unpack .../44-libkrb5support0_1.21.3-5_amd64.deb ...
286
+ Unpacking libkrb5support0:amd64 (1.21.3-5) ...
287
+ Selecting previously unselected package libk5crypto3:amd64.
288
+ Preparing to unpack .../45-libk5crypto3_1.21.3-5_amd64.deb ...
289
+ Unpacking libk5crypto3:amd64 (1.21.3-5) ...
290
+ Selecting previously unselected package libkeyutils1:amd64.
291
+ Preparing to unpack .../46-libkeyutils1_1.6.3-6_amd64.deb ...
292
+ Unpacking libkeyutils1:amd64 (1.6.3-6) ...
293
+ Selecting previously unselected package libkrb5-3:amd64.
294
+ Preparing to unpack .../47-libkrb5-3_1.21.3-5_amd64.deb ...
295
+ Unpacking libkrb5-3:amd64 (1.21.3-5) ...
296
+ Selecting previously unselected package libgssapi-krb5-2:amd64.
297
+ Preparing to unpack .../48-libgssapi-krb5-2_1.21.3-5_amd64.deb ...
298
+ Unpacking libgssapi-krb5-2:amd64 (1.21.3-5) ...
299
+ Selecting previously unselected package libldap-common.
300
+ Preparing to unpack .../49-libldap-common_2.6.10+dfsg-1_all.deb ...
301
+ Unpacking libldap-common (2.6.10+dfsg-1) ...
302
+ Selecting previously unselected package libsasl2-modules-db:amd64.
303
+ Preparing to unpack .../50-libsasl2-modules-db_2.1.28+dfsg1-9_amd64.deb ...
304
+ Unpacking libsasl2-modules-db:amd64 (2.1.28+dfsg1-9) ...
305
+ Selecting previously unselected package libsasl2-2:amd64.
306
+ Preparing to unpack .../51-libsasl2-2_2.1.28+dfsg1-9_amd64.deb ...
307
+ Unpacking libsasl2-2:amd64 (2.1.28+dfsg1-9) ...
308
+ Selecting previously unselected package libldap2:amd64.
309
+ Preparing to unpack .../52-libldap2_2.6.10+dfsg-1_amd64.deb ...
310
+ Unpacking libldap2:amd64 (2.6.10+dfsg-1) ...
311
+ Selecting previously unselected package libpq5:amd64.
312
+ Preparing to unpack .../53-libpq5_17.6-0+deb13u1_amd64.deb ...
313
+ Unpacking libpq5:amd64 (17.6-0+deb13u1) ...
314
+ Selecting previously unselected package libsasl2-modules:amd64.
315
+ Preparing to unpack .../54-libsasl2-modules_2.1.28+dfsg1-9_amd64.deb ...
316
+ Unpacking libsasl2-modules:amd64 (2.1.28+dfsg1-9) ...
317
+ Selecting previously unselected package manpages-dev.
318
+ Preparing to unpack .../55-manpages-dev_6.9.1-1_all.deb ...
319
+ Unpacking manpages-dev (6.9.1-1) ...
320
+ Selecting previously unselected package postgresql-client-common.
321
+ Preparing to unpack .../56-postgresql-client-common_278_all.deb ...
322
+ Unpacking postgresql-client-common (278) ...
323
+ Selecting previously unselected package postgresql-client-17.
324
+ Preparing to unpack .../57-postgresql-client-17_17.6-0+deb13u1_amd64.deb ...
325
+ Unpacking postgresql-client-17 (17.6-0+deb13u1) ...
326
+ Selecting previously unselected package postgresql-client.
327
+ Preparing to unpack .../58-postgresql-client_17+278_all.deb ...
328
+ Unpacking postgresql-client (17+278) ...
329
+ Setting up libkeyutils1:amd64 (1.6.3-6) ...
330
+ Setting up libgdbm-compat4t64:amd64 (1.24-2) ...
331
+ Setting up manpages (6.9.1-1) ...
332
+ Setting up libsasl2-modules:amd64 (2.1.28+dfsg1-9) ...
333
+ Setting up binutils-common:amd64 (2.44-3) ...
334
+ Setting up linux-libc-dev (6.12.57-1) ...
335
+ Setting up libctf-nobfd0:amd64 (2.44-3) ...
336
+ Setting up krb5-locales (1.21.3-5) ...
337
+ Setting up libcom-err2:amd64 (1.47.2-3+b3) ...
338
+ Setting up libgomp1:amd64 (14.2.0-19) ...
339
+ Setting up libldap-common (2.6.10+dfsg-1) ...
340
+ Setting up libsframe1:amd64 (2.44-3) ...
341
+ Setting up libjansson4:amd64 (2.14-2+b3) ...
342
+ Setting up libkrb5support0:amd64 (1.21.3-5) ...
343
+ Setting up libsasl2-modules-db:amd64 (2.1.28+dfsg1-9) ...
344
+ Setting up rpcsvc-proto (1.4.3-1) ...
345
+ Setting up libmpfr6:amd64 (4.2.2-1) ...
346
+ Setting up libquadmath0:amd64 (14.2.0-19) ...
347
+ Setting up libmpc3:amd64 (1.3.1-1+b3) ...
348
+ Setting up libatomic1:amd64 (14.2.0-19) ...
349
+ Setting up libk5crypto3:amd64 (1.21.3-5) ...
350
+ Setting up libsasl2-2:amd64 (2.1.28+dfsg1-9) ...
351
+ Setting up libubsan1:amd64 (14.2.0-19) ...
352
+ Setting up perl-modules-5.40 (5.40.1-6) ...
353
+ Setting up sensible-utils (0.0.25) ...
354
+ Setting up libhwasan0:amd64 (14.2.0-19) ...
355
+ Setting up libcrypt-dev:amd64 (1:4.4.38-1) ...
356
+ Setting up libasan8:amd64 (14.2.0-19) ...
357
+ Setting up libkrb5-3:amd64 (1.21.3-5) ...
358
+ Setting up libtsan2:amd64 (14.2.0-19) ...
359
+ Setting up libbinutils:amd64 (2.44-3) ...
360
+ Setting up libisl23:amd64 (0.27-1) ...
361
+ Setting up libc-dev-bin (2.41-12) ...
362
+ Setting up libcc1-0:amd64 (14.2.0-19) ...
363
+ Setting up libldap2:amd64 (2.6.10+dfsg-1) ...
364
+ Setting up liblsan0:amd64 (14.2.0-19) ...
365
+ Setting up libitm1:amd64 (14.2.0-19) ...
366
+ Setting up libctf0:amd64 (2.44-3) ...
367
+ Setting up manpages-dev (6.9.1-1) ...
368
+ Setting up libperl5.40:amd64 (5.40.1-6) ...
369
+ Setting up perl (5.40.1-6) ...
370
+ Setting up libgprofng0:amd64 (2.44-3) ...
371
+ Setting up libgssapi-krb5-2:amd64 (1.21.3-5) ...
372
+ Setting up cpp-14-x86-64-linux-gnu (14.2.0-19) ...
373
+ Setting up cpp-14 (14.2.0-19) ...
374
+ Setting up libc6-dev:amd64 (2.41-12) ...
375
+ Setting up libgcc-14-dev:amd64 (14.2.0-19) ...
376
+ Setting up binutils-x86-64-linux-gnu (2.44-3) ...
377
+ Setting up cpp-x86-64-linux-gnu (4:14.2.0-1) ...
378
+ Setting up postgresql-client-common (278) ...
379
+ Setting up libpq5:amd64 (17.6-0+deb13u1) ...
380
+ Setting up binutils (2.44-3) ...
381
+ Setting up cpp (4:14.2.0-1) ...
382
+ Setting up gcc-14-x86-64-linux-gnu (14.2.0-19) ...
383
+ Setting up gcc-x86-64-linux-gnu (4:14.2.0-1) ...
384
+ Setting up postgresql-client-17 (17.6-0+deb13u1) ...
385
+ update-alternatives: using /usr/share/postgresql/17/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode
386
+ Setting up gcc-14 (14.2.0-19) ...
387
+ Setting up postgresql-client (17+278) ...
388
+ Setting up gcc (4:14.2.0-1) ...
389
+ Processing triggers for libc-bin (2.41-12) ...
390
+ DONE 7.2s
391
+
392
+ --> COPY requirements.txt .
393
+ DONE 0.0s
394
+
395
+ --> RUN pip install --no-cache-dir -r requirements.txt
396
+ Collecting fastapi==0.104.1 (from -r requirements.txt (line 2))
397
+ Downloading fastapi-0.104.1-py3-none-any.whl.metadata (24 kB)
398
+ Collecting uvicorn==0.24.0 (from uvicorn[standard]==0.24.0->-r requirements.txt (line 3))
399
+ Downloading uvicorn-0.24.0-py3-none-any.whl.metadata (6.4 kB)
400
+ Collecting pydantic==2.5.0 (from -r requirements.txt (line 4))
401
+ Downloading pydantic-2.5.0-py3-none-any.whl.metadata (174 kB)
402
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 174.6/174.6 kB 37.4 MB/s eta 0:00:00
403
+ Collecting pydantic-settings==2.1.0 (from -r requirements.txt (line 5))
404
+ Downloading pydantic_settings-2.1.0-py3-none-any.whl.metadata (2.9 kB)
405
+ Collecting jinja2==3.1.2 (from -r requirements.txt (line 6))
406
+ Downloading Jinja2-3.1.2-py3-none-any.whl.metadata (3.5 kB)
407
+ Collecting aiofiles==23.2.1 (from -r requirements.txt (line 7))
408
+ Downloading aiofiles-23.2.1-py3-none-any.whl.metadata (9.7 kB)
409
+ Collecting sqlalchemy==2.0.23 (from -r requirements.txt (line 10))
410
+ Downloading SQLAlchemy-2.0.23-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.6 kB)
411
+ Collecting alembic==1.12.1 (from -r requirements.txt (line 11))
412
+ Downloading alembic-1.12.1-py3-none-any.whl.metadata (7.3 kB)
413
+ Collecting psycopg2-binary==2.9.9 (from -r requirements.txt (line 12))
414
+ Downloading psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.4 kB)
415
+ Collecting python-jose==3.3.0 (from python-jose[cryptography]==3.3.0->-r requirements.txt (line 15))
416
+ Downloading python_jose-3.3.0-py2.py3-none-any.whl.metadata (5.4 kB)
417
+ Collecting passlib==1.7.4 (from passlib[bcrypt]==1.7.4->-r requirements.txt (line 16))
418
+ Downloading passlib-1.7.4-py2.py3-none-any.whl.metadata (1.7 kB)
419
+ Collecting python-multipart==0.0.6 (from -r requirements.txt (line 17))
420
+ Downloading python_multipart-0.0.6-py3-none-any.whl.metadata (2.5 kB)
421
+ Collecting redis==5.0.1 (from -r requirements.txt (line 20))
422
+ Downloading redis-5.0.1-py3-none-any.whl.metadata (8.9 kB)
423
+ Collecting hiredis==2.2.3 (from -r requirements.txt (line 21))
424
+ Downloading hiredis-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB)
425
+ Collecting celery==5.3.4 (from -r requirements.txt (line 24))
426
+ Downloading celery-5.3.4-py3-none-any.whl.metadata (21 kB)
427
+ Collecting flower==2.0.1 (from -r requirements.txt (line 25))
428
+ Downloading flower-2.0.1-py2.py3-none-any.whl.metadata (4.5 kB)
429
+ Collecting supabase==2.0.3 (from -r requirements.txt (line 28))
430
+ Downloading supabase-2.0.3-py3-none-any.whl.metadata (11 kB)
431
+ Collecting cloudinary==1.36.0 (from -r requirements.txt (line 29))
432
+ Downloading cloudinary-1.36.0.tar.gz (174 kB)
433
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 174.3/174.3 kB 265.8 MB/s eta 0:00:00
434
+ Preparing metadata (setup.py): started
435
+ Preparing metadata (setup.py): finished with status 'done'
436
+ Collecting resend==0.7.0 (from -r requirements.txt (line 30))
437
+ Downloading resend-0.7.0-py2.py3-none-any.whl.metadata (2.2 kB)
438
+ Collecting googlemaps==4.10.0 (from -r requirements.txt (line 31))
439
+ Downloading googlemaps-4.10.0.tar.gz (33 kB)
440
+ Preparing metadata (setup.py): started
441
+ Preparing metadata (setup.py): finished with status 'done'
442
+ Collecting httpx==0.24.1 (from -r requirements.txt (line 34))
443
+ Downloading httpx-0.24.1-py3-none-any.whl.metadata (7.4 kB)
444
+ Collecting requests==2.31.0 (from -r requirements.txt (line 35))
445
+ Downloading requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
446
+ Collecting python-dateutil==2.8.2 (from -r requirements.txt (line 38))
447
+ Downloading python_dateutil-2.8.2-py2.py3-none-any.whl.metadata (8.2 kB)
448
+ Collecting pytz==2023.3 (from -r requirements.txt (line 39))
449
+ Downloading pytz-2023.3-py2.py3-none-any.whl.metadata (22 kB)
450
+ Collecting phonenumbers==8.13.26 (from -r requirements.txt (line 40))
451
+ Downloading phonenumbers-8.13.26-py2.py3-none-any.whl.metadata (11 kB)
452
+ Collecting sentry-sdk==1.38.0 (from -r requirements.txt (line 43))
453
+ Downloading sentry_sdk-1.38.0-py2.py3-none-any.whl.metadata (9.7 kB)
454
+ Collecting slowapi==0.1.9 (from -r requirements.txt (line 46))
455
+ Downloading slowapi-0.1.9-py3-none-any.whl.metadata (3.0 kB)
456
+ Collecting anyio<4.0.0,>=3.7.1 (from fastapi==0.104.1->-r requirements.txt (line 2))
457
+ Downloading anyio-3.7.1-py3-none-any.whl.metadata (4.7 kB)
458
+ Collecting starlette<0.28.0,>=0.27.0 (from fastapi==0.104.1->-r requirements.txt (line 2))
459
+ Downloading starlette-0.27.0-py3-none-any.whl.metadata (5.8 kB)
460
+ Collecting typing-extensions>=4.8.0 (from fastapi==0.104.1->-r requirements.txt (line 2))
461
+ Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
462
+ Collecting click>=7.0 (from uvicorn==0.24.0->uvicorn[standard]==0.24.0->-r requirements.txt (line 3))
463
+ Downloading click-8.3.0-py3-none-any.whl.metadata (2.6 kB)
464
+ Collecting h11>=0.8 (from uvicorn==0.24.0->uvicorn[standard]==0.24.0->-r requirements.txt (line 3))
465
+ Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB)
466
+ Collecting annotated-types>=0.4.0 (from pydantic==2.5.0->-r requirements.txt (line 4))
467
+ Downloading annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
468
+ Collecting pydantic-core==2.14.1 (from pydantic==2.5.0->-r requirements.txt (line 4))
469
+ Downloading pydantic_core-2.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.5 kB)
470
+ Collecting python-dotenv>=0.21.0 (from pydantic-settings==2.1.0->-r requirements.txt (line 5))
471
+ Downloading python_dotenv-1.2.1-py3-none-any.whl.metadata (25 kB)
472
+ Collecting MarkupSafe>=2.0 (from jinja2==3.1.2->-r requirements.txt (line 6))
473
+ Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)
474
+ Collecting greenlet!=0.4.17 (from sqlalchemy==2.0.23->-r requirements.txt (line 10))
475
+ Downloading greenlet-3.2.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (4.1 kB)
476
+ Collecting Mako (from alembic==1.12.1->-r requirements.txt (line 11))
477
+ Downloading mako-1.3.10-py3-none-any.whl.metadata (2.9 kB)
478
+ Collecting ecdsa!=0.15 (from python-jose==3.3.0->python-jose[cryptography]==3.3.0->-r requirements.txt (line 15))
479
+ Downloading ecdsa-0.19.1-py2.py3-none-any.whl.metadata (29 kB)
480
+ Collecting rsa (from python-jose==3.3.0->python-jose[cryptography]==3.3.0->-r requirements.txt (line 15))
481
+ Downloading rsa-4.9.1-py3-none-any.whl.metadata (5.6 kB)
482
+ Collecting pyasn1 (from python-jose==3.3.0->python-jose[cryptography]==3.3.0->-r requirements.txt (line 15))
483
+ Downloading pyasn1-0.6.1-py3-none-any.whl.metadata (8.4 kB)
484
+ Collecting billiard<5.0,>=4.1.0 (from celery==5.3.4->-r requirements.txt (line 24))
485
+ Downloading billiard-4.2.2-py3-none-any.whl.metadata (4.8 kB)
486
+ Collecting kombu<6.0,>=5.3.2 (from celery==5.3.4->-r requirements.txt (line 24))
487
+ Downloading kombu-5.6.0-py3-none-any.whl.metadata (3.5 kB)
488
+ Collecting vine<6.0,>=5.0.0 (from celery==5.3.4->-r requirements.txt (line 24))
489
+ Downloading vine-5.1.0-py3-none-any.whl.metadata (2.7 kB)
490
+ Collecting click-didyoumean>=0.3.0 (from celery==5.3.4->-r requirements.txt (line 24))
491
+ Downloading click_didyoumean-0.3.1-py3-none-any.whl.metadata (3.9 kB)
492
+ Collecting click-repl>=0.2.0 (from celery==5.3.4->-r requirements.txt (line 24))
493
+ Downloading click_repl-0.3.0-py3-none-any.whl.metadata (3.6 kB)
494
+ Collecting click-plugins>=1.1.1 (from celery==5.3.4->-r requirements.txt (line 24))
495
+ Downloading click_plugins-1.1.1.2-py2.py3-none-any.whl.metadata (6.5 kB)
496
+ Collecting tzdata>=2022.7 (from celery==5.3.4->-r requirements.txt (line 24))
497
+ Downloading tzdata-2025.2-py2.py3-none-any.whl.metadata (1.4 kB)
498
+ Collecting tornado<7.0.0,>=5.0.0 (from flower==2.0.1->-r requirements.txt (line 25))
499
+ Downloading tornado-6.5.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.8 kB)
500
+ Collecting prometheus-client>=0.8.0 (from flower==2.0.1->-r requirements.txt (line 25))
501
+ Downloading prometheus_client-0.23.1-py3-none-any.whl.metadata (1.9 kB)
502
+ Collecting humanize (from flower==2.0.1->-r requirements.txt (line 25))
503
+ Downloading humanize-4.14.0-py3-none-any.whl.metadata (7.8 kB)
504
+ Collecting gotrue<2.0.0,>=1.3.0 (from supabase==2.0.3->-r requirements.txt (line 28))
505
+ Downloading gotrue-1.3.1-py3-none-any.whl.metadata (5.9 kB)
506
+ Collecting postgrest<0.14.0,>=0.10.8 (from supabase==2.0.3->-r requirements.txt (line 28))
507
+ Downloading postgrest-0.13.2-py3-none-any.whl.metadata (5.1 kB)
508
+ Collecting realtime<2.0.0,>=1.0.0 (from supabase==2.0.3->-r requirements.txt (line 28))
509
+ Downloading realtime-1.0.6-py3-none-any.whl.metadata (2.6 kB)
510
+ Collecting storage3<0.7.0,>=0.5.3 (from supabase==2.0.3->-r requirements.txt (line 28))
511
+ Downloading storage3-0.6.1-py3-none-any.whl.metadata (1.8 kB)
512
+ Collecting supafunc<0.4.0,>=0.3.1 (from supabase==2.0.3->-r requirements.txt (line 28))
513
+ Downloading supafunc-0.3.3-py3-none-any.whl.metadata (1.2 kB)
514
+ Collecting six (from cloudinary==1.36.0->-r requirements.txt (line 29))
515
+ Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
516
+ Collecting urllib3>=1.26.5 (from cloudinary==1.36.0->-r requirements.txt (line 29))
517
+ Downloading urllib3-2.5.0-py3-none-any.whl.metadata (6.5 kB)
518
+ Collecting certifi (from cloudinary==1.36.0->-r requirements.txt (line 29))
519
+ Downloading certifi-2025.11.12-py3-none-any.whl.metadata (2.5 kB)
520
+ Collecting httpcore<0.18.0,>=0.15.0 (from httpx==0.24.1->-r requirements.txt (line 34))
521
+ Downloading httpcore-0.17.3-py3-none-any.whl.metadata (18 kB)
522
+ Collecting idna (from httpx==0.24.1->-r requirements.txt (line 34))
523
+ Downloading idna-3.11-py3-none-any.whl.metadata (8.4 kB)
524
+ Collecting sniffio (from httpx==0.24.1->-r requirements.txt (line 34))
525
+ Downloading sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB)
526
+ Collecting charset-normalizer<4,>=2 (from requests==2.31.0->-r requirements.txt (line 35))
527
+ Downloading charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (37 kB)
528
+ Collecting limits>=2.3 (from slowapi==0.1.9->-r requirements.txt (line 46))
529
+ Downloading limits-5.6.0-py3-none-any.whl.metadata (10 kB)
530
+ Collecting bcrypt>=3.1.0 (from passlib[bcrypt]==1.7.4->-r requirements.txt (line 16))
531
+ Downloading bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl.metadata (10 kB)
532
+ Collecting cryptography>=3.4.0 (from python-jose[cryptography]==3.3.0->-r requirements.txt (line 15))
533
+ Downloading cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl.metadata (5.7 kB)
534
+ Collecting httptools>=0.5.0 (from uvicorn[standard]==0.24.0->-r requirements.txt (line 3))
535
+ Downloading httptools-0.7.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (3.5 kB)
536
+ Collecting pyyaml>=5.1 (from uvicorn[standard]==0.24.0->-r requirements.txt (line 3))
537
+ Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB)
538
+ Collecting uvloop!=0.15.0,!=0.15.1,>=0.14.0 (from uvicorn[standard]==0.24.0->-r requirements.txt (line 3))
539
+ Downloading uvloop-0.22.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (4.9 kB)
540
+ Collecting watchfiles>=0.13 (from uvicorn[standard]==0.24.0->-r requirements.txt (line 3))
541
+ Downloading watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB)
542
+ Collecting websockets>=10.4 (from uvicorn[standard]==0.24.0->-r requirements.txt (line 3))
543
+ Downloading websockets-15.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.8 kB)
544
+ Collecting prompt-toolkit>=3.0.36 (from click-repl>=0.2.0->celery==5.3.4->-r requirements.txt (line 24))
545
+ Downloading prompt_toolkit-3.0.52-py3-none-any.whl.metadata (6.4 kB)
546
+ Collecting cffi>=2.0.0 (from cryptography>=3.4.0->python-jose[cryptography]==3.3.0->-r requirements.txt (line 15))
547
+ Downloading cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.6 kB)
548
+ Collecting h11>=0.8 (from uvicorn==0.24.0->uvicorn[standard]==0.24.0->-r requirements.txt (line 3))
549
+ Downloading h11-0.14.0-py3-none-any.whl.metadata (8.2 kB)
550
+ Collecting amqp<6.0.0,>=5.1.1 (from kombu<6.0,>=5.3.2->celery==5.3.4->-r requirements.txt (line 24))
551
+ Downloading amqp-5.3.1-py3-none-any.whl.metadata (8.9 kB)
552
+ Collecting packaging (from kombu<6.0,>=5.3.2->celery==5.3.4->-r requirements.txt (line 24))
553
+ Downloading packaging-25.0-py3-none-any.whl.metadata (3.3 kB)
554
+ Collecting deprecated>=1.2 (from limits>=2.3->slowapi==0.1.9->-r requirements.txt (line 46))
555
+ Downloading deprecated-1.3.1-py2.py3-none-any.whl.metadata (5.9 kB)
556
+ Collecting deprecation<3.0.0,>=2.1.0 (from postgrest<0.14.0,>=0.10.8->supabase==2.0.3->-r requirements.txt (line 28))
557
+ Downloading deprecation-2.1.0-py2.py3-none-any.whl.metadata (4.6 kB)
558
+ Collecting strenum<0.5.0,>=0.4.9 (from postgrest<0.14.0,>=0.10.8->supabase==2.0.3->-r requirements.txt (line 28))
559
+ Downloading StrEnum-0.4.15-py3-none-any.whl.metadata (5.3 kB)
560
+ Collecting websockets>=10.4 (from uvicorn[standard]==0.24.0->-r requirements.txt (line 3))
561
+ Downloading websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)
562
+ Collecting pycparser (from cffi>=2.0.0->cryptography>=3.4.0->python-jose[cryptography]==3.3.0->-r requirements.txt (line 15))
563
+ Downloading pycparser-2.23-py3-none-any.whl.metadata (993 bytes)
564
+ Collecting wrapt<3,>=1.10 (from deprecated>=1.2->limits>=2.3->slowapi==0.1.9->-r requirements.txt (line 46))
565
+ Downloading wrapt-2.0.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (9.0 kB)
566
+ Collecting wcwidth (from prompt-toolkit>=3.0.36->click-repl>=0.2.0->celery==5.3.4->-r requirements.txt (line 24))
567
+ Downloading wcwidth-0.2.14-py2.py3-none-any.whl.metadata (15 kB)
568
+ Downloading fastapi-0.104.1-py3-none-any.whl (92 kB)
569
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 92.9/92.9 kB 400.4 MB/s eta 0:00:00
570
+ Downloading uvicorn-0.24.0-py3-none-any.whl (59 kB)
571
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 59.6/59.6 kB 364.9 MB/s eta 0:00:00
572
+ Downloading pydantic-2.5.0-py3-none-any.whl (407 kB)
573
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 407.5/407.5 kB 238.7 MB/s eta 0:00:00
574
+ Downloading pydantic_settings-2.1.0-py3-none-any.whl (11 kB)
575
+ Downloading Jinja2-3.1.2-py3-none-any.whl (133 kB)
576
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.1/133.1 kB 422.7 MB/s eta 0:00:00
577
+ Downloading aiofiles-23.2.1-py3-none-any.whl (15 kB)
578
+ Downloading SQLAlchemy-2.0.23-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.2 MB)
579
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2/3.2 MB 392.2 MB/s eta 0:00:00
580
+ Downloading alembic-1.12.1-py3-none-any.whl (226 kB)
581
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 226.8/226.8 kB 211.3 MB/s eta 0:00:00
582
+ Downloading psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB)
583
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 106.7 MB/s eta 0:00:00
584
+ Downloading python_jose-3.3.0-py2.py3-none-any.whl (33 kB)
585
+ Downloading passlib-1.7.4-py2.py3-none-any.whl (525 kB)
586
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 525.6/525.6 kB 520.7 MB/s eta 0:00:00
587
+ Downloading python_multipart-0.0.6-py3-none-any.whl (45 kB)
588
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.7/45.7 kB 341.4 MB/s eta 0:00:00
589
+ Downloading redis-5.0.1-py3-none-any.whl (250 kB)
590
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 250.3/250.3 kB 143.1 MB/s eta 0:00:00
591
+ Downloading hiredis-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (166 kB)
592
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 166.6/166.6 kB 492.3 MB/s eta 0:00:00
593
+ Downloading celery-5.3.4-py3-none-any.whl (421 kB)
594
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 421.4/421.4 kB 448.2 MB/s eta 0:00:00
595
+ Downloading flower-2.0.1-py2.py3-none-any.whl (383 kB)
596
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 383.6/383.6 kB 517.1 MB/s eta 0:00:00
597
+ Downloading supabase-2.0.3-py3-none-any.whl (11 kB)
598
+ Downloading resend-0.7.0-py2.py3-none-any.whl (8.7 kB)
599
+ Downloading httpx-0.24.1-py3-none-any.whl (75 kB)
600
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 75.4/75.4 kB 391.2 MB/s eta 0:00:00
601
+ Downloading requests-2.31.0-py3-none-any.whl (62 kB)
602
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.6/62.6 kB 288.2 MB/s eta 0:00:00
603
+ Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
604
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 kB 448.7 MB/s eta 0:00:00
605
+ Downloading pytz-2023.3-py2.py3-none-any.whl (502 kB)
606
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 502.3/502.3 kB 407.4 MB/s eta 0:00:00
607
+ Downloading phonenumbers-8.13.26-py2.py3-none-any.whl (2.6 MB)
608
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.6/2.6 MB 200.6 MB/s eta 0:00:00
609
+ Downloading sentry_sdk-1.38.0-py2.py3-none-any.whl (252 kB)
610
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 252.8/252.8 kB 423.4 MB/s eta 0:00:00
611
+ Downloading slowapi-0.1.9-py3-none-any.whl (14 kB)
612
+ Downloading pydantic_core-2.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
613
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 430.7 MB/s eta 0:00:00
614
+ Downloading annotated_types-0.7.0-py3-none-any.whl (13 kB)
615
+ Downloading anyio-3.7.1-py3-none-any.whl (80 kB)
616
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.9/80.9 kB 407.9 MB/s eta 0:00:00
617
+ Downloading bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl (278 kB)
618
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 278.2/278.2 kB 366.8 MB/s eta 0:00:00
619
+ Downloading billiard-4.2.2-py3-none-any.whl (86 kB)
620
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 86.9/86.9 kB 393.7 MB/s eta 0:00:00
621
+ Downloading certifi-2025.11.12-py3-none-any.whl (159 kB)
622
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 159.4/159.4 kB 419.4 MB/s eta 0:00:00
623
+ Downloading charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (151 kB)
624
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 151.6/151.6 kB 396.0 MB/s eta 0:00:00
625
+ Downloading click-8.3.0-py3-none-any.whl (107 kB)
626
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 107.3/107.3 kB 400.9 MB/s eta 0:00:00
627
+ Downloading click_didyoumean-0.3.1-py3-none-any.whl (3.6 kB)
628
+ Downloading click_plugins-1.1.1.2-py2.py3-none-any.whl (11 kB)
629
+ Downloading click_repl-0.3.0-py3-none-any.whl (10 kB)
630
+ Downloading cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl (4.5 MB)
631
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 326.9 MB/s eta 0:00:00
632
+ Downloading ecdsa-0.19.1-py2.py3-none-any.whl (150 kB)
633
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 150.6/150.6 kB 453.9 MB/s eta 0:00:00
634
+ Downloading gotrue-1.3.1-py3-none-any.whl (42 kB)
635
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.3/42.3 kB 243.0 MB/s eta 0:00:00
636
+ Downloading greenlet-3.2.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (587 kB)
637
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 587.7/587.7 kB 476.3 MB/s eta 0:00:00
638
+ Downloading httpcore-0.17.3-py3-none-any.whl (74 kB)
639
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 74.5/74.5 kB 367.4 MB/s eta 0:00:00
640
+ Downloading sniffio-1.3.1-py3-none-any.whl (10 kB)
641
+ Downloading h11-0.14.0-py3-none-any.whl (58 kB)
642
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.3/58.3 kB 345.4 MB/s eta 0:00:00
643
+ Downloading httptools-0.7.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (456 kB)
644
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 456.6/456.6 kB 450.9 MB/s eta 0:00:00
645
+ Downloading idna-3.11-py3-none-any.whl (71 kB)
646
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.0/71.0 kB 374.7 MB/s eta 0:00:00
647
+ Downloading kombu-5.6.0-py3-none-any.whl (213 kB)
648
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 213.8/213.8 kB 416.1 MB/s eta 0:00:00
649
+ Downloading vine-5.1.0-py3-none-any.whl (9.6 kB)
650
+ Downloading limits-5.6.0-py3-none-any.whl (60 kB)
651
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.6/60.6 kB 364.0 MB/s eta 0:00:00
652
+ Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)
653
+ Downloading postgrest-0.13.2-py3-none-any.whl (19 kB)
654
+ Downloading prometheus_client-0.23.1-py3-none-any.whl (61 kB)
655
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.1/61.1 kB 377.7 MB/s eta 0:00:00
656
+ Downloading python_dotenv-1.2.1-py3-none-any.whl (21 kB)
657
+ Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB)
658
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 806.6/806.6 kB 459.7 MB/s eta 0:00:00
659
+ Downloading realtime-1.0.6-py3-none-any.whl (9.0 kB)
660
+ Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
661
+ Downloading starlette-0.27.0-py3-none-any.whl (66 kB)
662
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67.0/67.0 kB 296.4 MB/s eta 0:00:00
663
+ Downloading storage3-0.6.1-py3-none-any.whl (15 kB)
664
+ Downloading supafunc-0.3.3-py3-none-any.whl (6.1 kB)
665
+ Downloading tornado-6.5.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (443 kB)
666
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 443.9/443.9 kB 463.1 MB/s eta 0:00:00
667
+ Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)
668
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 44.6/44.6 kB 359.8 MB/s eta 0:00:00
669
+ Downloading tzdata-2025.2-py2.py3-none-any.whl (347 kB)
670
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 347.8/347.8 kB 478.0 MB/s eta 0:00:00
671
+ Downloading urllib3-2.5.0-py3-none-any.whl (129 kB)
672
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 129.8/129.8 kB 450.6 MB/s eta 0:00:00
673
+ Downloading uvloop-0.22.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.8 MB)
674
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.8/3.8 MB 142.2 MB/s eta 0:00:00
675
+ Downloading watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (456 kB)
676
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 456.1/456.1 kB 342.6 MB/s eta 0:00:00
677
+ Downloading websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (130 kB)
678
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 130.9/130.9 kB 293.9 MB/s eta 0:00:00
679
+ Downloading humanize-4.14.0-py3-none-any.whl (132 kB)
680
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 132.1/132.1 kB 382.0 MB/s eta 0:00:00
681
+ Downloading mako-1.3.10-py3-none-any.whl (78 kB)
682
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78.5/78.5 kB 413.5 MB/s eta 0:00:00
683
+ Downloading pyasn1-0.6.1-py3-none-any.whl (83 kB)
684
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 83.1/83.1 kB 398.9 MB/s eta 0:00:00
685
+ Downloading rsa-4.9.1-py3-none-any.whl (34 kB)
686
+ Downloading amqp-5.3.1-py3-none-any.whl (50 kB)
687
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.9/50.9 kB 320.0 MB/s eta 0:00:00
688
+ Downloading cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (215 kB)
689
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 215.6/215.6 kB 482.5 MB/s eta 0:00:00
690
+ Downloading deprecated-1.3.1-py2.py3-none-any.whl (11 kB)
691
+ Downloading deprecation-2.1.0-py2.py3-none-any.whl (11 kB)
692
+ Downloading packaging-25.0-py3-none-any.whl (66 kB)
693
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.5/66.5 kB 373.9 MB/s eta 0:00:00
694
+ Downloading prompt_toolkit-3.0.52-py3-none-any.whl (391 kB)
695
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 391.4/391.4 kB 512.3 MB/s eta 0:00:00
696
+ Downloading StrEnum-0.4.15-py3-none-any.whl (8.9 kB)
697
+ Downloading wrapt-2.0.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (114 kB)
698
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 114.1/114.1 kB 425.7 MB/s eta 0:00:00
699
+ Downloading pycparser-2.23-py3-none-any.whl (118 kB)
700
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 118.1/118.1 kB 446.3 MB/s eta 0:00:00
701
+ Downloading wcwidth-0.2.14-py2.py3-none-any.whl (37 kB)
702
+ Building wheels for collected packages: cloudinary, googlemaps
703
+ Building wheel for cloudinary (setup.py): started
704
+ Building wheel for cloudinary (setup.py): finished with status 'done'
705
+ Created wheel for cloudinary: filename=cloudinary-1.36.0-py3-none-any.whl size=138914 sha256=eb4d2f5b62b2c50734f2128f0ca877fc3e9860a37aba85ea3cb79cb1c6863c05
706
+ Stored in directory: /tmp/pip-ephem-wheel-cache-uh3t491x/wheels/c3/93/e6/4337704771b9890f4b4f1d27a3bbfd49684223769b40e70993
707
+ Building wheel for googlemaps (setup.py): started
708
+ Building wheel for googlemaps (setup.py): finished with status 'done'
709
+ Created wheel for googlemaps: filename=googlemaps-4.10.0-py3-none-any.whl size=40820 sha256=15287274bbe1ff6f74f73c4eebb0f5d37bf86e1c04cd1c2bd9684e55211c7a5c
710
+ Stored in directory: /tmp/pip-ephem-wheel-cache-uh3t491x/wheels/f1/09/77/3cc2f5659cbc62341b30f806aca2b25e6a26c351daa5b1f49a
711
+ Successfully built cloudinary googlemaps
712
+ Installing collected packages: strenum, pytz, phonenumbers, passlib, wrapt, websockets, wcwidth, vine, uvloop, urllib3, tzdata, typing-extensions, tornado, sniffio, six, redis, pyyaml, python-multipart, python-dotenv, pycparser, pyasn1, psycopg2-binary, prometheus-client, packaging, MarkupSafe, idna, humanize, httptools, hiredis, h11, greenlet, click, charset-normalizer, certifi, billiard, bcrypt, annotated-types, aiofiles, uvicorn, sqlalchemy, sentry-sdk, rsa, requests, python-dateutil, pydantic-core, prompt-toolkit, Mako, jinja2, ecdsa, deprecation, deprecated, cloudinary, click-plugins, click-didyoumean, cffi, anyio, amqp, watchfiles, starlette, resend, realtime, python-jose, pydantic, limits, kombu, httpcore, googlemaps, cryptography, click-repl, alembic, slowapi, pydantic-settings, httpx, fastapi, celery, supafunc, storage3, postgrest, gotrue, flower, supabase
713
+ Successfully installed Mako-1.3.10 MarkupSafe-3.0.3 aiofiles-23.2.1 alembic-1.12.1 amqp-5.3.1 annotated-types-0.7.0 anyio-3.7.1 bcrypt-5.0.0 billiard-4.2.2 celery-5.3.4 certifi-2025.11.12 cffi-2.0.0 charset-normalizer-3.4.4 click-8.3.0 click-didyoumean-0.3.1 click-plugins-1.1.1.2 click-repl-0.3.0 cloudinary-1.36.0 cryptography-46.0.3 deprecated-1.3.1 deprecation-2.1.0 ecdsa-0.19.1 fastapi-0.104.1 flower-2.0.1 googlemaps-4.10.0 gotrue-1.3.1 greenlet-3.2.4 h11-0.14.0 hiredis-2.2.3 httpcore-0.17.3 httptools-0.7.1 httpx-0.24.1 humanize-4.14.0 idna-3.11 jinja2-3.1.2 kombu-5.6.0 limits-5.6.0 packaging-25.0 passlib-1.7.4 phonenumbers-8.13.26 postgrest-0.13.2 prometheus-client-0.23.1 prompt-toolkit-3.0.52 psycopg2-binary-2.9.9 pyasn1-0.6.1 pycparser-2.23 pydantic-2.5.0 pydantic-core-2.14.1 pydantic-settings-2.1.0 python-dateutil-2.8.2 python-dotenv-1.2.1 python-jose-3.3.0 python-multipart-0.0.6 pytz-2023.3 pyyaml-6.0.3 realtime-1.0.6 redis-5.0.1 requests-2.31.0 resend-0.7.0 rsa-4.9.1 sentry-sdk-1.38.0 six-1.17.0 slowapi-0.1.9 sniffio-1.3.1 sqlalchemy-2.0.23 starlette-0.27.0 storage3-0.6.1 strenum-0.4.15 supabase-2.0.3 supafunc-0.3.3 tornado-6.5.2 typing-extensions-4.15.0 tzdata-2025.2 urllib3-2.5.0 uvicorn-0.24.0 uvloop-0.22.1 vine-5.1.0 watchfiles-1.1.1 wcwidth-0.2.14 websockets-12.0 wrapt-2.0.1
714
+ WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
715
+
716
+ [notice] A new release of pip is available: 24.0 -> 25.3
717
+ [notice] To update, run: pip install --upgrade pip
718
+ DONE 24.2s
719
+
720
+ --> COPY src/ ./src/
721
+ DONE 0.2s
722
+
723
+ --> COPY alembic/ ./alembic/
724
+ DONE 0.1s
725
+
726
+ --> COPY alembic.ini .
727
+ DONE 0.1s
728
+
729
+ --> Pushing image
730
+ DONE 2.7s
731
+
732
+ --> Exporting cache
733
+ DONE 0.2s
requirements.txt CHANGED
@@ -3,6 +3,8 @@ fastapi==0.104.1
3
  uvicorn[standard]==0.24.0
4
  pydantic==2.5.0
5
  pydantic-settings==2.1.0
 
 
6
  jinja2==3.1.2
7
  aiofiles==23.2.1
8
 
@@ -11,39 +13,21 @@ sqlalchemy==2.0.23
11
  alembic==1.12.1
12
  psycopg2-binary==2.9.9
13
 
 
 
 
14
  # Authentication & Security
15
  python-jose[cryptography]==3.3.0
16
  passlib[bcrypt]==1.7.4
17
  python-multipart==0.0.6
18
 
19
- # Redis & Caching
20
- redis==5.0.1
21
- hiredis==2.2.3
22
-
23
- # Celery (Background Tasks)
24
- celery==5.3.4
25
- flower==2.0.1
26
-
27
- # External Integrations
28
- supabase==2.0.3
29
- cloudinary==1.36.0
30
- resend==0.7.0
31
- googlemaps==4.10.0
32
-
33
  # HTTP Client
34
- httpx==0.24.1 # Compatible with supabase 2.0.3 (requires <0.25.0)
35
  requests==2.31.0
36
 
37
  # Utilities
38
  python-dateutil==2.8.2
39
  pytz==2023.3
40
- phonenumbers==8.13.26
41
-
42
- # Monitoring & Logging
43
- sentry-sdk==1.38.0
44
 
45
  # Rate Limiting
46
  slowapi==0.1.9
47
-
48
- # Note: Development dependencies moved to requirements-dev.txt
49
- # This file contains only production dependencies
 
3
  uvicorn[standard]==0.24.0
4
  pydantic==2.5.0
5
  pydantic-settings==2.1.0
6
+
7
+ # Templates & Static Files
8
  jinja2==3.1.2
9
  aiofiles==23.2.1
10
 
 
13
  alembic==1.12.1
14
  psycopg2-binary==2.9.9
15
 
16
+ # Supabase (PostgreSQL Database)
17
+ supabase==2.0.3
18
+
19
  # Authentication & Security
20
  python-jose[cryptography]==3.3.0
21
  passlib[bcrypt]==1.7.4
22
  python-multipart==0.0.6
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  # HTTP Client
25
+ httpx==0.24.1
26
  requests==2.31.0
27
 
28
  # Utilities
29
  python-dateutil==2.8.2
30
  pytz==2023.3
 
 
 
 
31
 
32
  # Rate Limiting
33
  slowapi==0.1.9
 
 
 
src/app/config.py CHANGED
@@ -9,36 +9,24 @@ class Settings(BaseSettings):
9
  # Application
10
  APP_NAME: str = "SwiftOps API"
11
  DEBUG: bool = False
12
- ENVIRONMENT: str = "development"
13
- SECRET_KEY: str
14
  ALGORITHM: str = "HS256"
15
  ACCESS_TOKEN_EXPIRE_MINUTES: int = 1440 # 24 hours
16
 
17
- # Database (Supabase)
 
18
  DATABASE_URL: str
19
  SUPABASE_URL: str
20
  SUPABASE_KEY: str
21
  SUPABASE_SERVICE_KEY: str
22
 
23
- # Redis
24
- REDIS_URL: str = "redis://localhost:6379/0"
25
-
26
- # Celery
27
- CELERY_BROKER_URL: str = "redis://localhost:6379/0"
28
- CELERY_RESULT_BACKEND: str = "redis://localhost:6379/0"
29
-
30
- # Cloudinary
31
  CLOUDINARY_CLOUD_NAME: Optional[str] = None
32
  CLOUDINARY_API_KEY: Optional[str] = None
33
  CLOUDINARY_API_SECRET: Optional[str] = None
34
-
35
- # Resend
36
  RESEND_API_KEY: Optional[str] = None
37
-
38
- # Google Maps
39
  GOOGLE_MAPS_API_KEY: Optional[str] = None
40
-
41
- # Monitoring
42
  SENTRY_DSN: Optional[str] = None
43
 
44
  class Config:
 
9
  # Application
10
  APP_NAME: str = "SwiftOps API"
11
  DEBUG: bool = False
12
+ ENVIRONMENT: str = "production"
13
+ SECRET_KEY: str = "change-this-secret-key-in-production-use-env-vars"
14
  ALGORITHM: str = "HS256"
15
  ACCESS_TOKEN_EXPIRE_MINUTES: int = 1440 # 24 hours
16
 
17
+ # Database - Supabase PostgreSQL (REQUIRED)
18
+ # Format: postgresql://postgres:[password]@[host]/postgres
19
  DATABASE_URL: str
20
  SUPABASE_URL: str
21
  SUPABASE_KEY: str
22
  SUPABASE_SERVICE_KEY: str
23
 
24
+ # Optional External Services
 
 
 
 
 
 
 
25
  CLOUDINARY_CLOUD_NAME: Optional[str] = None
26
  CLOUDINARY_API_KEY: Optional[str] = None
27
  CLOUDINARY_API_SECRET: Optional[str] = None
 
 
28
  RESEND_API_KEY: Optional[str] = None
 
 
29
  GOOGLE_MAPS_API_KEY: Optional[str] = None
 
 
30
  SENTRY_DSN: Optional[str] = None
31
 
32
  class Config:
src/app/core/database.py CHANGED
@@ -6,12 +6,13 @@ from sqlalchemy.ext.declarative import declarative_base
6
  from sqlalchemy.orm import sessionmaker
7
  from app.config import settings
8
 
9
- # Create database engine
10
  engine = create_engine(
11
  settings.DATABASE_URL,
12
  pool_pre_ping=True,
13
- pool_size=10,
14
- max_overflow=20
 
15
  )
16
 
17
  # Create session factory
 
6
  from sqlalchemy.orm import sessionmaker
7
  from app.config import settings
8
 
9
+ # Create database engine (Supabase PostgreSQL)
10
  engine = create_engine(
11
  settings.DATABASE_URL,
12
  pool_pre_ping=True,
13
+ pool_size=5, # Reduced for HF Spaces
14
+ max_overflow=10, # Reduced for HF Spaces
15
+ echo=settings.DEBUG
16
  )
17
 
18
  # Create session factory
src/app/main.py CHANGED
@@ -5,9 +5,15 @@ from fastapi import FastAPI
5
  from fastapi.middleware.cors import CORSMiddleware
6
  from fastapi.staticfiles import StaticFiles
7
  from pathlib import Path
 
8
 
9
  # Import routers
10
  from app.api.v1 import pages
 
 
 
 
 
11
 
12
  # Get static files directory
13
  static_dir = Path(__file__).parent / "static"
@@ -20,6 +26,16 @@ app = FastAPI(
20
  redoc_url="/api/redoc"
21
  )
22
 
 
 
 
 
 
 
 
 
 
 
23
  # Mount static files
24
  app.mount("/static", StaticFiles(directory=str(static_dir)), name="static")
25
 
 
5
  from fastapi.middleware.cors import CORSMiddleware
6
  from fastapi.staticfiles import StaticFiles
7
  from pathlib import Path
8
+ import logging
9
 
10
  # Import routers
11
  from app.api.v1 import pages
12
+ from app.config import settings
13
+
14
+ # Setup logging
15
+ logging.basicConfig(level=logging.INFO)
16
+ logger = logging.getLogger(__name__)
17
 
18
  # Get static files directory
19
  static_dir = Path(__file__).parent / "static"
 
26
  redoc_url="/api/redoc"
27
  )
28
 
29
+ # Startup event
30
+ @app.on_event("startup")
31
+ async def startup_event():
32
+ """Initialize the application on startup"""
33
+ logger.info(f"πŸš€ Starting {settings.APP_NAME} v1.0.0")
34
+ logger.info(f"πŸ“Š Environment: {settings.ENVIRONMENT}")
35
+ logger.info(f"πŸ—„οΈ Database: Connected to Supabase")
36
+ logger.info(f"πŸ”‘ Supabase URL: {settings.SUPABASE_URL}")
37
+ logger.info("βœ… Application startup complete")
38
+
39
  # Mount static files
40
  app.mount("/static", StaticFiles(directory=str(static_dir)), name="static")
41