Skip to content

Commit

Permalink
feat: Fix for packaging with name DataLine
Browse files Browse the repository at this point in the history
  • Loading branch information
RamiAwar committed Apr 30, 2024
1 parent 2033be8 commit e9ef40a
Show file tree
Hide file tree
Showing 8 changed files with 22 additions and 25 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/bundling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ jobs:
- name: Run pyinstaller
run: |
pyinstaller --clean --hidden-import=asyncpg.pgproto.pgproto --hidden-import=uuid --hidden-import=ipaddress --hidden-import=aiosqlite \
--add-data alembic:alembic --add-data alembic.ini:. --add-data dataline/samples:dataline/samples --add-data templates:templates --add-data assets:assets \
--add-data alembic:alembic --add-data alembic.ini:. --add-data samples:samples --add-data templates:templates --add-data assets:assets \
--collect-data llama_index --distpath ../linux_dist --hidden-import=tiktoken_ext.openai_public --hidden-import=tiktoken_ext --collect-data=jinja2 main.py -y
- uses: actions/upload-artifact@v4
with:
Expand Down Expand Up @@ -118,7 +118,7 @@ jobs:
- name: Run pyinstaller
run: |
pyinstaller --windowed -i ../images/logo.ico --name DataLine --clean --hidden-import=asyncpg.pgproto.pgproto --hidden-import=uuid --hidden-import=ipaddress --hidden-import=aiosqlite `
--add-data "alembic;alembic" --add-data "alembic.ini;." --add-data "dataline/samples;dataline/samples" --add-data "templates;templates" --add-data "assets;assets" `
--add-data "alembic;alembic" --add-data "alembic.ini;." --add-data "samples;samples" --add-data "templates;templates" --add-data "assets;assets" `
--collect-data llama_index --distpath ../win64_dist --hidden-import=tiktoken_ext.openai_public --hidden-import=tiktoken_ext --collect-data=jinja2 main.py -y
- uses: actions/upload-artifact@v4
with:
Expand Down Expand Up @@ -156,8 +156,8 @@ jobs:
pip install -r requirements.txt pyinstaller==5.13.2
- name: Run pyinstaller
run: |
pyinstaller --windowed -i ../images/logo.icns --clean --hidden-import=asyncpg.pgproto.pgproto --hidden-import=uuid --hidden-import=ipaddress --hidden-import=aiosqlite \
--add-data alembic:alembic --add-data alembic.ini:. --add-data dataline/samples:dataline/samples --add-data templates:templates --add-data assets:assets \
pyinstaller --name DataLine --windowed -i ../images/logo.icns --clean --hidden-import=asyncpg.pgproto.pgproto --hidden-import=uuid --hidden-import=ipaddress --hidden-import=aiosqlite \
--add-data alembic:alembic --add-data alembic.ini:. --add-data samples:samples --add-data templates:templates --add-data assets:assets \
--collect-data llama_index --distpath ../macos_dist --hidden-import=tiktoken_ext.openai_public --hidden-import=tiktoken_ext --collect-data=jinja2 main.py -y
- uses: actions/upload-artifact@v4
with:
Expand Down
2 changes: 1 addition & 1 deletion entrypoint-wine.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ if [[ "$@" == "" ]]; then
fi # [ -f requirements.txt ]

pyinstaller --windowed -i logo.ico --name DataLine --clean --hidden-import=asyncpg.pgproto.pgproto --hidden-import=uuid --hidden-import=ipaddress --hidden-import=aiosqlite \
--add-data "alembic;alembic" --add-data "alembic.ini;." --add-data "dataline/samples;dataline/samples" --add-data "templates;templates" --add-data "assets;assets" \
--add-data "alembic;alembic" --add-data "alembic.ini;." --add-data "samples;samples" --add-data "templates;templates" --add-data "assets;assets" \
--collect-data llama_index --distpath /win64_dist --hidden-import=tiktoken_ext.openai_public --hidden-import=tiktoken_ext --collect-data=jinja2 main.py -y
chown -R --reference=. /win64_dist
# pyinstaller --clean -y --dist ./dist/windows --workpath /tmp *.spec
Expand Down
6 changes: 3 additions & 3 deletions text2sql-backend/BUNDLING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ cp dist/manifest.json ../text2sql-backend/assets/manifest.json
```bash
cd text2sql-backend
pyinstaller --clean --hidden-import=asyncpg.pgproto.pgproto --hidden-import=uuid --hidden-import=ipaddress --hidden-import=aiosqlite \
--add-data alembic:alembic --add-data alembic.ini:. --add-data dataline/samples:dataline/samples --add-data templates:templates --add-data assets:assets \
--add-data alembic:alembic --add-data alembic.ini:. --add-data samples:samples --add-data templates:templates --add-data assets:assets \
--collect-data llama_index --distpath ../linux_dist --hidden-import=tiktoken_ext.openai_public --hidden-import=tiktoken_ext --collect-data=jinja2 main.py -y
```

Expand All @@ -28,7 +28,7 @@ You can find the executable under `linux_dist/main/main`. Once run, go to localh
```bash
cd text2sql-backend
pyinstaller --windowed -i ../images/logo.icns --name DataLine --clean --hidden-import=asyncpg.pgproto.pgproto --hidden-import=uuid --hidden-import=ipaddress --hidden-import=aiosqlite \
--add-data alembic:alembic --add-data alembic.ini:. --add-data dataline/samples:dataline/samples --add-data templates:templates --add-data assets:assets \
--add-data alembic:alembic --add-data alembic.ini:. --add-data samples:samples --add-data templates:templates --add-data assets:assets \
--collect-data llama_index --distpath ../macos_dist --hidden-import=tiktoken_ext.openai_public --hidden-import=tiktoken_ext --collect-data=jinja2 main.py -y
```

Expand All @@ -55,7 +55,7 @@ docker exec -it wine /bin/bash -->
wine C:/Python311/python.exe -m pip install -r requirements.txt
pyinstaller --windowed -i logo.ico --name DataLine --hidden-import=asyncpg.pgproto.pgproto --hidden-import=uuid --hidden-import=ipaddress --hidden-import=aiosqlite \
--add-data "alembic;alembic" --add-data "alembic.ini;." --add-data "dataline/samples;dataline/samples" --add-data "templates;templates" --add-data "assets;assets" \
--add-data "alembic;alembic" --add-data "alembic.ini;." --add-data "samples;samples" --add-data "templates;templates" --add-data "assets;assets" \
--collect-data llama_index --distpath ../win64_dist --hidden-import=tiktoken_ext.openai_public --hidden-import=tiktoken_ext --collect-data=jinja2 main.py -y
```
Expand Down
12 changes: 5 additions & 7 deletions text2sql-backend/dataline/config.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import sys

from pathlib import Path

from pydantic_settings import BaseSettings


# https://pyinstaller.org/en/v6.6.0/runtime-information.html
IS_BUNDLED = bool(getattr(sys, "frozen", False) and hasattr(sys, "_MEIPASS"))

Expand All @@ -13,15 +11,15 @@ class Config(BaseSettings):
# SQLite database will be mounted in the configuration directory
# This is where all DataLine data is stored
# Current dir / db.sqlite3
sqlite_path: str = str(Path(__file__).parent / "db.sqlite3")
sqlite_path: str = str(Path(__file__).parent.parent / "db.sqlite3")
sqlite_echo: bool = False

# This is where all uploaded files are stored (ex. uploaded sqlite DBs)
data_directory: str = str(Path(__file__).parent / "data")
data_directory: str = str(Path(__file__).parent.parent / "data")

sample_dvdrental_path: str = str(Path(__file__).parent / "samples" / "dvd_rental.sqlite3")
sample_netflix_path: str = str(Path(__file__).parent / "samples" / "netflix.sqlite3")
sample_titanic_path: str = str(Path(__file__).parent / "samples" / "titanic.sqlite3")
sample_dvdrental_path: str = str(Path(__file__).parent.parent / "samples" / "dvd_rental.sqlite3")
sample_netflix_path: str = str(Path(__file__).parent.parent / "samples" / "netflix.sqlite3")
sample_titanic_path: str = str(Path(__file__).parent.parent / "samples" / "titanic.sqlite3")

default_model: str = "gpt-4"
templates_path: Path = Path(__file__).parent.parent / "templates"
Expand Down
19 changes: 9 additions & 10 deletions text2sql-backend/main.py
Original file line number Diff line number Diff line change
@@ -1,29 +1,24 @@
import json
import logging
import socket
import sys
import webbrowser
from contextlib import asynccontextmanager
from pathlib import Path
from typing import Annotated, AsyncGenerator
from uuid import UUID

import socket
import uvicorn
from fastapi import Body, Depends, FastAPI, HTTPException, Request, Response
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from pydantic import BaseModel
from pydantic.json import pydantic_encoder
from pygments import lexers
from pygments_pprint_sql import SqlFilter

import db
import uvicorn
from alembic import command
from alembic.config import Config
from app import App
from dataline.config import IS_BUNDLED, config
from dataline.repositories.base import AsyncSession, NotFoundError, get_session
from dataline.services.settings import SettingsService
from fastapi import Body, Depends, FastAPI, HTTPException, Request, Response
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from models import (
Conversation,
ConversationWithMessagesWithResults,
Expand All @@ -34,6 +29,10 @@
UnsavedResult,
UpdateConversationRequest,
)
from pydantic import BaseModel
from pydantic.json import pydantic_encoder
from pygments import lexers
from pygments_pprint_sql import SqlFilter
from services import QueryService, results_from_query_response
from sql_wrapper import request_execute, request_limit

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit e9ef40a

Please sign in to comment.