зеркало из
				https://github.com/viginum-datalab/twscrape.git
				synced 2025-10-31 05:56:24 +02:00 
			
		
		
		
	improve sqlite version check, reduce minimal version #58
Этот коммит содержится в:
		
							родитель
							
								
									4d8c91a211
								
							
						
					
					
						Коммит
						a742fe658e
					
				| @ -1,26 +0,0 @@ | |||||||
| FROM python:3.10-alpine |  | ||||||
| ARG SQLITE_Y=2021 |  | ||||||
| ARG SQLITE_V=3340100 |  | ||||||
| 
 |  | ||||||
| RUN pip install --upgrade pip |  | ||||||
| RUN python -c "import sqlite3;print(sqlite3.sqlite_version)" |  | ||||||
| 
 |  | ||||||
| # https://www.sqlite.org/chronology.html |  | ||||||
| RUN apk add build-base |  | ||||||
| RUN wget https://sqlite.org/${SQLITE_Y}/sqlite-autoconf-${SQLITE_V}.tar.gz -O sqlite.tar.gz \ |  | ||||||
|     && tar xvfz sqlite.tar.gz \ |  | ||||||
|     && cd sqlite-autoconf-${SQLITE_V} \ |  | ||||||
|     && ./configure --prefix=/usr/local --build=aarch64-unknown-linux-gnu \ |  | ||||||
|     && make \ |  | ||||||
|     && make install \ |  | ||||||
|     && cd .. \ |  | ||||||
|     && rm -rf sqlite* |  | ||||||
| 
 |  | ||||||
| RUN sqlite3 --version |  | ||||||
| RUN python -c "import sqlite3;print(sqlite3.sqlite_version)" |  | ||||||
| 
 |  | ||||||
| WORKDIR /app |  | ||||||
| COPY pyproject.toml readme.md /app/ |  | ||||||
| RUN pip install -e .[dev] |  | ||||||
| COPY . /app |  | ||||||
| RUN pytest tests/ |  | ||||||
							
								
								
									
										22
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								Makefile
									
									
									
									
									
								
							| @ -1,5 +1,7 @@ | |||||||
| .PHONY: all build | .PHONY: all build | ||||||
| 
 | 
 | ||||||
|  | SQTEST = docker -l warning build -f sqlite.dockerfile | ||||||
|  | 
 | ||||||
| all: | all: | ||||||
| 	@echo "hi" | 	@echo "hi" | ||||||
| 
 | 
 | ||||||
| @ -44,7 +46,25 @@ changelog: | |||||||
| 	@git log $(shell git describe --tags --abbrev=0 HEAD)^..HEAD --pretty=format:'- %s' | 	@git log $(shell git describe --tags --abbrev=0 HEAD)^..HEAD --pretty=format:'- %s' | ||||||
| 
 | 
 | ||||||
| test34: | test34: | ||||||
| 	docker build -f Dockerfile-test . | 	@# https://www.sqlite.org/chronology.html | ||||||
|  | 	# @$(SQTEST) --build-arg SQLY=2017 --build-arg SQLV=3210000 -t twscrape_sq21 . | ||||||
|  | 	# @$(SQTEST) --build-arg SQLY=2018 --build-arg SQLV=3220000 -t twscrape_sq22 . | ||||||
|  | 	@$(SQTEST) --build-arg SQLY=2018 --build-arg SQLV=3230000 -t twscrape_sq23 . | ||||||
|  | 	@$(SQTEST) --build-arg SQLY=2018 --build-arg SQLV=3240000 -t twscrape_sq24 . | ||||||
|  | 	@$(SQTEST) --build-arg SQLY=2019 --build-arg SQLV=3270200 -t twscrape_sq27 . | ||||||
|  | 	@$(SQTEST) --build-arg SQLY=2019 --build-arg SQLV=3300100 -t twscrape_sq30 . | ||||||
|  | 	@$(SQTEST) --build-arg SQLY=2020 --build-arg SQLV=3330000 -t twscrape_sq33 . | ||||||
|  | 	@$(SQTEST) --build-arg SQLY=2021 --build-arg SQLV=3340100 -t twscrape_sq34 . | ||||||
|  | 	@$(SQTEST) --build-arg SQLY=2023 --build-arg SQLV=3430000 -t twscrape_sq43 . | ||||||
|  | 	# @docker run twscrape_sq21 | ||||||
|  | 	# @docker run twscrape_sq22 | ||||||
|  | 	# @docker run twscrape_sq23 | ||||||
|  | 	@docker run twscrape_sq24 | ||||||
|  | 	@docker run twscrape_sq27 | ||||||
|  | 	@docker run twscrape_sq30 | ||||||
|  | 	@docker run twscrape_sq33 | ||||||
|  | 	@docker run twscrape_sq34 | ||||||
|  | 	@docker run twscrape_sq43 | ||||||
| 
 | 
 | ||||||
| update-mocks: | update-mocks: | ||||||
| 	twscrape user_by_id --raw 2244994945 | jq > ./tests/mocked-data/user_by_id_raw.json | 	twscrape user_by_id --raw 2244994945 | jq > ./tests/mocked-data/user_by_id_raw.json | ||||||
|  | |||||||
							
								
								
									
										22
									
								
								sqlite.dockerfile
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						
									
										22
									
								
								sqlite.dockerfile
									
									
									
									
									
										Обычный файл
									
								
							| @ -0,0 +1,22 @@ | |||||||
|  | FROM python:3.10-alpine as base | ||||||
|  | RUN apk add build-base | ||||||
|  | 
 | ||||||
|  | FROM base | ||||||
|  | ARG SQLY=2021 | ||||||
|  | ARG SQLV=3340100 | ||||||
|  | 
 | ||||||
|  | RUN wget https://sqlite.org/${SQLY}/sqlite-autoconf-${SQLV}.tar.gz -O sqlite.tar.gz \ | ||||||
|  |     && tar xvfz sqlite.tar.gz \ | ||||||
|  |     && cd sqlite-autoconf-${SQLV} \ | ||||||
|  |     && ./configure --prefix=/usr/local --build=aarch64-unknown-linux-gnu \ | ||||||
|  |     && make \ | ||||||
|  |     && make install \ | ||||||
|  |     && cd .. \ | ||||||
|  |     && rm -rf sqlite* | ||||||
|  | 
 | ||||||
|  | WORKDIR /app | ||||||
|  | COPY pyproject.toml readme.md /app/ | ||||||
|  | RUN pip install -e .[dev] | ||||||
|  | COPY . /app | ||||||
|  | 
 | ||||||
|  | CMD sqlite3 --version; python -c "import sqlite3;print(sqlite3.sqlite_version)"; pytest tests/ | ||||||
| @ -6,7 +6,7 @@ import aiosqlite | |||||||
| 
 | 
 | ||||||
| from .logger import logger | from .logger import logger | ||||||
| 
 | 
 | ||||||
| MIN_SQLITE_VERSION = "3.34" | MIN_SQLITE_VERSION = "3.24" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def lock_retry(max_retries=5, delay=1): | def lock_retry(max_retries=5, delay=1): | ||||||
| @ -38,9 +38,12 @@ async def check_version(): | |||||||
|     ver = await get_sqlite_version() |     ver = await get_sqlite_version() | ||||||
|     ver = ".".join(ver.split(".")[:2]) |     ver = ".".join(ver.split(".")[:2]) | ||||||
| 
 | 
 | ||||||
|     if ver < MIN_SQLITE_VERSION: |     try: | ||||||
|         msg = f"SQLite version '{ver}' is too old, please upgrade to {MIN_SQLITE_VERSION}+" |         msg = f"SQLite version '{ver}' is too old, please upgrade to {MIN_SQLITE_VERSION}+" | ||||||
|  |         if float(ver) < float(MIN_SQLITE_VERSION): | ||||||
|             raise SystemError(msg) |             raise SystemError(msg) | ||||||
|  |     except ValueError: | ||||||
|  |         pass | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| async def migrate(db: aiosqlite.Connection): | async def migrate(db: aiosqlite.Connection): | ||||||
|  | |||||||
		Загрузка…
	
	
			
			x
			
			
		
	
		Ссылка в новой задаче
	
	Block a user
	 Vlad Pronsky
						Vlad Pronsky