Skip to content

Commit 7b805d7

Browse files
committed
SQLAlchemy started, db session defined.
1 parent 59a76d1 commit 7b805d7

File tree

8 files changed

+91
-0
lines changed

8 files changed

+91
-0
lines changed

src/ch9-sqlalchemy/final/pypi_sqlalchemy/.idea/dictionaries/screencaster.xml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/ch9-sqlalchemy/final/pypi_sqlalchemy/.idea/inspectionProfiles/Project_Default.xml

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/ch9-sqlalchemy/final/pypi_sqlalchemy/.idea/webResources.xml

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/ch9-sqlalchemy/final/pypi_sqlalchemy/pypi/data/__init__.py

Whitespace-only changes.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import sqlalchemy
2+
3+
import sqlalchemy.orm
4+
5+
6+
class DbSession:
7+
factory = None
8+
engine = None
9+
10+
@staticmethod
11+
def global_init(db_file: str):
12+
if DbSession.factory:
13+
return
14+
15+
if not db_file or not db_file.strip():
16+
raise Exception("You must specify a data file.")
17+
18+
conn_str = 'sqlite:///' + db_file
19+
print("Connecting to DB at: {}".format(conn_str))
20+
21+
engine = sqlalchemy.create_engine(conn_str, echo=False)
22+
DbSession.engine = engine
23+
DbSession.factory = sqlalchemy.orm.sessionmaker(bind=engine)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import sqlalchemy.ext.declarative as dec
2+
3+
SqlAlchemyBase = dec.declarative_base()
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import sqlalchemy as sa
2+
from pypi.data.modelbase import SqlAlchemyBase
3+
4+
5+
class Package(SqlAlchemyBase):
6+
__tablename__ = 'packages'
7+
8+
id = sa.Column(sa.String, primary_key=True)
9+
created_date = sa.Column(sa.DateTime)
10+
summary = sa.Column(sa.String)
11+
description = sa.Column(sa.String)
12+
13+
home_page = sa.Column(sa.String)
14+
docs_url = sa.Column(sa.String)
15+
package_url = sa.Column(sa.String)
16+
17+
author_name = sa.Column(sa.String)
18+
author_email = sa.Column(sa.String)
19+
20+
license = sa.Column(sa.String)
21+
22+
# releases
23+
# maintainers
24+
25+
def __repr__(self):
26+
return '<Package {}>'.format(self.id)

src/ch9-sqlalchemy/final/pypi_sqlalchemy/setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
'pyramid',
1414
'pyramid_chameleon',
1515
'pyramid_debugtoolbar',
16+
'sqlalchemy',
1617
'waitress',
1718
]
1819

0 commit comments

Comments
 (0)