Skip to content

Commit

Permalink
setup
Browse files Browse the repository at this point in the history
  • Loading branch information
thomaxxl committed Feb 5, 2018
1 parent 00f4450 commit 2f16163
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 21 deletions.
4 changes: 4 additions & 0 deletions MANIFEST.in
@@ -0,0 +1,4 @@
include requirements.txt
include LICENSE
include README.md
prune tests
50 changes: 30 additions & 20 deletions safrs/db.py
Expand Up @@ -26,6 +26,7 @@
from sqlalchemy.types import Text, String, Integer, DateTime, TypeDecorator, Integer
from sqlalchemy.ext.hybrid import hybrid_property
from flask_marshmallow import Marshmallow
from sqlalchemy import inspect as sqla_inspect

from werkzeug import secure_filename
from flask_sqlalchemy import SQLAlchemy
Expand Down Expand Up @@ -104,22 +105,6 @@ def _s_query(cls):

query = _s_query

@classproperty
def _s_column_names(cls):
return [ c.name for c in cls.__mapper__.columns]

@classproperty
def _s_columns(cls):
return list(cls.__mapper__.columns)

@classproperty
def _s_class_name(cls):
return cls.__tablename__

@classproperty
def _s_type(cls):
return cls.__tablename__

def __new__(cls, **kwargs):
'''
If an object with given arguments already exists, this object is instantiated
Expand All @@ -139,10 +124,6 @@ def __new__(cls, **kwargs):

return instance

@property
def _s_relationships(self):
return self.__mapper__.relationships

def __init__(self, *args, **kwargs ):
'''
Object initialization:
Expand Down Expand Up @@ -187,6 +168,7 @@ def __init__(self, *args, **kwargs ):
for rel_param in rel_params:
rel_object = rel.mapper.class_(**rel_param)
rel_attr.append(rel_object)


db.session.add(self)
try:
Expand All @@ -195,6 +177,31 @@ def __init__(self, *args, **kwargs ):
# Exception may arise when a db constrained has been violated (e.g. duplicate key)
raise GenericError(str(exc))


def _s_expunge(self):
session = sqla_inspect(self).session
session.expunge(self)

@classproperty
def _s_column_names(cls):
return [ c.name for c in cls.__mapper__.columns]

@classproperty
def _s_columns(cls):
return list(cls.__mapper__.columns)

@classproperty
def _s_class_name(cls):
return cls.__tablename__

@classproperty
def _s_type(cls):
return cls.__tablename__

@property
def _s_relationships(self):
return self.__mapper__.relationships

def _s_patch(self, **kwargs):
for attr in self._s_column_names:
value = kwargs.get(attr,None)
Expand Down Expand Up @@ -459,3 +466,6 @@ def get_db():

db = get_db()
ma = Marshmallow()



16 changes: 16 additions & 0 deletions setup.cfg
@@ -0,0 +1,16 @@
[build_sphinx]
source-dir = docs/source
build-dir = docs/build
all_files = 1

[upload_sphinx]
upload-dir = doc/build/html

[metadata]
description-file = README.md

[zest.releaser]
create-wheel = yes

[aliases]
test=pytest
8 changes: 7 additions & 1 deletion setup.py
@@ -1,8 +1,13 @@
from distutils.core import setup
from pip.req import parse_requirements


install_requires=[str(ir.req) for ir in parse_requirements('requirements.txt', session=False)]

setup(
name = 'safrs',
packages = ['safrs'],
version = '1.0.2',
version = '1.0.3',
license = 'MIT',
description = 'safrs : SqlAlchemy Flask-Restful Swagger2',
author = 'Thomas Pollet',
Expand All @@ -11,6 +16,7 @@
download_url = 'https://github.com/thomaxxl/safrs/archive/1.0.1.tar.gz',
keywords = ['SqlAlchemy', 'Flask', 'REST', 'Swagger', 'JsonAPI', 'OpenAPI'],
python_requires='>=2.6, !=3.0.*, !=3.1.*, !=3.2.*, <4',
install_requires=install_requires,
classifiers = [
'Development Status :: 3 - Alpha',
'License :: OSI Approved :: MIT License',
Expand Down

0 comments on commit 2f16163

Please sign in to comment.