[sqlalchemy] Re: a Python-side value or SQL expression is required

2016-01-19 Thread gbr
Thanks Mike - it makes absolute sense now. I didn't consider how passing 
the dicts gets converted into SQL.

I conclude that this error has nothing to do with server_default or 
nullable=True, but stems from the fact that some keys of the dictionaries 
are set while others aren't.

Thanks again for taking the time to respond (and of course for creating 
such a great library).


On Monday, 18 January 2016 18:23:04 UTC+11, gbr wrote:
>
> I've upgraded from a SQLA version 0.9.x to 1.0.9. Previously, I did the 
> following when inserting new records:
>
> - Column('flag', Boolean, server_default=sql.expression.false()) I didn't set 
> those columns locally and didn't include them in the insert statement when I 
> wanted them to be False
> - Column('date', Date, nullable=False) I didn't set those columns as part of 
> the insert when I wanted `date=None`
> - Column('number', Float, nullable=True) I assigned integer values to the 
> column which were implicitly "casted" to floats
>
> This behaviour changed which is described here 
> (http://docs.sqlalchemy.org/en/latest/changelog/migration_10.html#python-side-defaults-invoked-for-each-row-invidually-when-using-a-multivalued-insert)
>
> My question which (perhaps all?) of the above things I did could have caused 
> the error message below (with the upgrade). Can I reinstate the old behaviour 
> (is there a global SQLA parameter I could configure?) or some other way of 
> making sure I fix all places where the above bullet points still apply?
>
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/scoping.py", 
> line 150, in do
> return getattr(self.registry(), name)(*args, **kwargs)
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", 
> line 1034, in execute
> bind, close_with_result=True).execute(clause, params or {})
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", 
> line 914, in execute
> return meth(self, multiparams, params)
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", 
> line 323, in _execute_on_connection
> return connection._execute_clauseelement(self, multiparams, params)
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", 
> line 1003, in _execute_clauseelement
> inline=len(distilled_params) > 1)
>   File "", line 1, in 
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", 
> line 494, in compile
> return self._compiler(dialect, bind=bind, **kw)
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", 
> line 500, in _compiler
> return dialect.statement_compiler(dialect, self, **kw)
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", 
> line 392, in __init__
> Compiled.__init__(self, dialect, statement, **kwargs)
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", 
> line 190, in __init__
> self.string = self.process(self.statement, **compile_kwargs)
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", 
> line 213, in process
> return obj._compiler_dispatch(self, **kwargs)
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", 
> line 81, in _compiler_dispatch
> return meth(self, **kw)
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", 
> line 1819, in visit_insert
> crud_params = crud._get_crud_params(self, insert_stmt, **kw)
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/crud.py", line 
> 113, in _get_crud_params
> values = _extend_values_for_multiparams(compiler, stmt, values, kw)
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/crud.py", line 
> 503, in _extend_values_for_multiparams
> for i, row in enumerate(stmt.parameters[1:])
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/crud.py", line 
> 503, in 
> for i, row in enumerate(stmt.parameters[1:])
>   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/crud.py", line 
> 336, in _process_multiparam_default_bind
> "a Python-side value or SQL expression is required" % c)
> CompileError: INSERT value for column table.number is explicitly rendered as 
> a boundparameter in the VALUES clause; a Python-side value or SQL expression 
> is required
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


[sqlalchemy] How to execute multiple insert/update queries in one SQL using Python/SQLAlchemy and MSSQL?

2016-01-19 Thread Guoliang Li
Hi all, 

I’m new to python and SQLAlchemy, I'm trying to understand how to execute 
multiple insert/update queries in one SQL using Python/SQLAlchemy:

Requirement Execute multiple insert/update in one SQL:

DECLARE @age INT = 160

INSERT INTO TEST_TABLE VALUES ('QZ_TEST', @age + 1)

INSERT INTO TEST_TABLE VALUES ('QZ_TEST', 'not a number')

INSERT INTO ANOTHER_TABLE VALUES ('QZ_TEST', @age + 2)

Understand that this query looks ugly, but we do have many similar queries. 
(we're using a legacy database which is around 20 years old)

Python Code

Python: 2.7 - SQLAlchemy (1.0.8) - SQL SERVER 2012

 

def OdbcEngineSA(driver, conn_str):

def connect():

return pyodbc.connect(conn_str, autocommit=True, timeout=120)

return sqlalchemy.create_engine(driver + '://', creator=connect)

 

def get_db_connection():

return OdbcEngineSA('mssql', 
'DSN=mssql;Server=server,15001;database=DEV;UID=user_abc;PWD=pw_')

 

def main():

db_connection = get_db_connection()

sql = """

DECLARE @age INT = 160

INSERT INTO TEST_TABLE VALUES ('QZ_TEST', @age + 1)

INSERT INTO TEST_TABLE VALUES ('QZ_TEST', 'not a number')

INSERT INTO ANOTHER_TABLE VALUES ('QZ_TEST', @age + 2)

"""

try:

db_connection.execute(sql)

db_connection.commit()

logger.info('db updated')  

except Exception as e:

logger.error('Exception captured as expected: %s', e)

db_connection.rollback()

Please note that

INSERT INTO TEST_TABLE VALUES ('QZ_TEST', 'not a number')

will trigger an Error if I ran this single query with my SQL client: 
[S0001][245] Conversion failed when converting the varchar value 'not a number' 
to data type int.


I'm expecting an exception captured by Python, however, the Python code runs 
without any exception. There's no exception captured by Python even though I 
replaced the SQL with:

BEGIN TRY

DECLARE @age INT = 160

INSERT INTO TEST_TABLE VALUES ('QZ_TEST', @age + 1)

INSERT INTO TEST_TABLE VALUES ('QZ_TEST', 'not a number')

   INSERT INTO ANOTHER_TABLE VALUES ('QZ_TEST', @age + 2)

END TRY

BEGIN CATCH

DECLARE @ErrorMessage NVARCHAR(4000)

DECLARE @ErrorSeverity INT

DECLARE @ErrorState INT

 

SELECT

@ErrorMessage = ERROR_MESSAGE(),

@ErrorSeverity = ERROR_SEVERITY(),

@ErrorState = ERROR_STATE()

 

RAISERROR (@ErrorMessage,

   @ErrorSeverity, -- Level 16

   @ErrorState

   )

END CATCH

My Questions

· Am I using the correct method to execute the Query?

· If my code was fine, how can I capture the actual SQL exception from 
Python?



Many thanks in advance.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


Re: [sqlalchemy] Searching from jsonb list

2016-01-19 Thread Mike Bayer


if it's JSONB then you'd need to CAST it as a CHAR first:

func.lower(cast(column, CHAR)).contains(word.lower())

try it in SQL first at the psql command line to work it out fully.





On 01/19/2016 01:30 PM, Sami Pietilä wrote:
> I am not exactly sure where to add sql.func.lower(). Following command
> gave an error that lower() for jsonb does not exist.
> 
> sql_command =
> select([self.tables[subsection].c[id_label]]).where(sql.func.lower(self.tables[subsection].c[column_name]).contains(cast(word.lower(),
> JSONB)))
> 
> ProgrammingError: (psycopg2.ProgrammingError) function lower(jsonb) does
> not exist
> LINE 3: WHERE (lower(baserecords.first_names) LIKE '%' || CAST('"las...
>^
> HINT:  No function matches the given name and argument types. You might
> need to add explicit type casts.
>  [SQL: "SELECT baserecords._id \nFROM baserecords \nWHERE
> (lower(baserecords.first_names) LIKE '%%' || CAST(%(param_1)s AS JSONB)
> || '%%')"] [parameters: {'param_1': '"last"'}]
> 
> 
> tiistai 19. tammikuuta 2016 18.37.20 UTC+2 Michael Bayer kirjoitti:
> 
> call func.lower(expr) on the expression that you're comparing
> towards so
> that it will render the SQL LOWER() function, then compare to a lower
> case Python value.
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to sqlalchemy+unsubscr...@googlegroups.com
> .
> To post to this group, send email to sqlalchemy@googlegroups.com
> .
> Visit this group at https://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


Re: [sqlalchemy] Searching from jsonb list

2016-01-19 Thread Sami Pietilä
I am not exactly sure where to add sql.func.lower(). Following command gave 
an error that lower() for jsonb does not exist.

sql_command = 
select([self.tables[subsection].c[id_label]]).where(sql.func.lower(self.tables[subsection].c[column_name]).contains(cast(word.lower(),
 
JSONB)))

ProgrammingError: (psycopg2.ProgrammingError) function lower(jsonb) does 
not exist
LINE 3: WHERE (lower(baserecords.first_names) LIKE '%' || CAST('"las...
   ^
HINT:  No function matches the given name and argument types. You might 
need to add explicit type casts.
 [SQL: "SELECT baserecords._id \nFROM baserecords \nWHERE 
(lower(baserecords.first_names) LIKE '%%' || CAST(%(param_1)s AS JSONB) || 
'%%')"] [parameters: {'param_1': '"last"'}]


tiistai 19. tammikuuta 2016 18.37.20 UTC+2 Michael Bayer kirjoitti:
>
> call func.lower(expr) on the expression that you're comparing towards so 
> that it will render the SQL LOWER() function, then compare to a lower 
> case Python value. 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


Re: [sqlalchemy] hybrid property / expression returns entire table

2016-01-19 Thread Brian Cherinka
Hmm.  So I removed the column definitions and it worked just fine.  This 
doesn't make any sense to me, since this is essentially my original class 
definition, and now it works.  Maybe I had a type before?, but it didn't 
look like it.  I'm using a postgreSQL database, and my table definition is 
very straightforward.  It looks like 

CREATE TABLE datadb.sample (pk serial PRIMARY KEY NOT NULL, tileid INTEGER, 
nsa_mstar REAL, nsa_id INTEGER,   bunch of other column definitions ) 

No my table does not have a logmstar definition.  Only mstar.  I create the 
property in my Sample class definition.   This is very strange.  

Brian

On Friday, January 15, 2016 at 6:31:23 PM UTC-5, Simon King wrote:
>
> You shouldn’t need to define the columns. Here’s another test script: 
>
> ### 
> import math 
>
> import sqlalchemy as sa 
> import sqlalchemy.orm as saorm 
> from sqlalchemy.ext.hybrid import hybrid_property 
> from sqlalchemy.ext.declarative import declarative_base 
>
> Base = declarative_base() 
>
> engine = sa.create_engine('sqlite:///hybridtest.db') 
>
> engine.execute(""" 
> CREATE TABLE sample ( 
> pk INTEGER NOT NULL, 
> nsa_mstar FLOAT, 
> PRIMARY KEY (pk) 
> ) 
> """) 
>
> class Sample(Base): 
> __tablename__ = 'sample' 
> __table_args__ = {'autoload' : True, 'autoload_with': engine} 
>
> @hybrid_property 
> def nsa_logmstar(self): 
> try: 
> return math.log10(self.nsa_mstar) 
> except ValueError: 
> return -.0 
> except TypeError: 
> return None 
>
> @nsa_logmstar.expression 
> def nsa_logmstar(cls): 
> return sa.func.log(cls.nsa_mstar) 
>
>
> if __name__ == '__main__': 
> sm = saorm.sessionmaker() 
> session = sm() 
> print session.query(Sample.pk).filter(Sample.nsa_logmstar < 9) 
> ### 
>
> What database are you using, and what is your SQL table definition? Does 
> your table already have a nsa_logmstar column? (I don’t think that should 
> matter, but it would be worth checking) 
>
> Simon 
>
>
> > On 15 Jan 2016, at 22:27, Brian Cherinka  > wrote: 
> > 
> > It looks like I needed to define the columns inside my class.  That's 
> the only difference between your class and mine.  And I tested out the 
> query and it now works, and returns the correct number of rows. 
> > 
> > In [4]: print 
> > session.query(datadb.Sample.pk).filter(datadb.Sample.nsa_logmstar 
> < 9) 
> > 
> > SELECT datadb.sample.pk AS datadb_sample_pk 
> > FROM datadb.sample 
> > WHERE log(datadb.sample.nsa_mstar) < %(log_1)s 
> > 
> > In [6]: 
> > len(session.query(datadb.Sample.pk).filter(datadb.Sample.nsa_logmstar 
> < 9,datadb.Sample.nsa_mstar > 0).all()) 
> > Out[6]: 273 
> > 
> > Do you have any idea why the column definition matters here?  Thanks for 
> all your help. 
> > 
> > Brian 
> > 
> > On Friday, January 15, 2016 at 5:02:03 PM UTC-5, Brian Cherinka wrote: 
> > Here is the print immediately after my original class definition: 
> > 
> > print 'sample nsa log mstar', 
> Sample.nsa_logmstar 
> > 
> > and the result 
> > 
> > sample nsa log mstar None 
> > 
> > When I run your script exactly as is, I get the same output as you.   
> > 
> > When I replace my class definition with yours, inside my code, as 
> follows 
> > 
> > class Sample(Base): 
> > __tablename__ = 'sample' 
> > __table_args__ = {'autoload' : True, 'schema' : 'mangadatadb'}  (I 
> needed to add this line in) 
> > 
> > pk = Column(Integer, primary_key=True) 
> > nsa_mstar = Column(Float) 
> > 
> > @hybrid_property 
> > def nsa_logmstar(self): 
> > try: 
> > return math.log10(self.nsa_mstar) 
> > except ValueError: 
> > return -.0 
> > except TypeError: 
> > return None 
> > 
> > @nsa_logmstar.expression 
> > def nsa_logmstar(cls): 
> > return func.log(cls.nsa_mstar) 
> > 
> > now the print statement :  print 'sample nsa log mstar', 
> Sample.nsa_logmstar 
> > returns 
> > 
> > sample nsa log mstar log(mangadatadb.sample.nsa_mstar) 
> > 
> > 
> > On Friday, January 15, 2016 at 4:28:31 PM UTC-5, Simon King wrote: 
> > Does my test script produce the right output for you in your 
> installation? 
> > 
> > What does the print statement immediately after the class definition 
> produce? 
> > 
> > Simon 
> > 
> > > On 15 Jan 2016, at 19:10, Brian Cherinka  wrote: 
> > > 
> > > Actually, the class definition is entirely what I posted in the 
> original message.  I didn't cut anything out of that.  I don't define the 
> columns in mine, as you did.  The property nsa_logmstar is not defined 
> anywhere else in the class or in any other place in this code, or in any 
> code that interacts with this code. 
> > > 
> > > class Sample(Base,ArrayOps): 
> > >__tablename__ = 'sample' 
> > >

Re: [sqlalchemy] Searching from jsonb list

2016-01-19 Thread Sami Pietilä
I think I got "contains" and "cast" working for case sensitive exact string 
[.contains(cast(word, JSONB)))]. However I would like to match for case 
insensitive substrings like using [.ilike('%'+word+'%'))]. How can I 
specify to "contains" to match case insensitive? I also tried to use 
"%"+word+"%" with contains function but it did not seem to work. 

 

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


Re: [sqlalchemy] How to execute multiple insert/update queries in one SQL using Python/SQLAlchemy and MSSQL?

2016-01-19 Thread Mike Bayer


On 01/19/2016 03:01 AM, Guoliang Li wrote:
> Hi all, 
> 
> I’m new to python and SQLAlchemy, I'm trying to understand how to execute 
> multiple insert/update queries in one SQL using Python/SQLAlchemy:
> 
> Requirement Execute multiple insert/update in one SQL:
> 
> DECLARE @age INT = 160
> 
> INSERT INTO TEST_TABLE VALUES ('QZ_TEST', @age + 1)
> 
> INSERT INTO TEST_TABLE VALUES ('QZ_TEST', 'not a number')
> 
> INSERT INTO ANOTHER_TABLE VALUES ('QZ_TEST', @age + 2)
> 
> Understand that this query looks ugly, but we do have many similar queries. 
> (we're using a legacy database which is around 20 years old)

you can't do the "DECLARE @age" part with the DBAPI or SQLAlchemy very
easily (if at all), the "160" you'd pass in from the outside.

These three INSERT statements are all of a different format so you'd
break them up into individual execute() calls.

Otherwise, if you want to try to run that SQL exactly as written without
changing it, the best you can do is get a raw DBAPI cursor and see if
you can make it work, see
http://docs.sqlalchemy.org/en/rel_1_0/core/connections.html#working-with-raw-dbapi-connections
for how to get at that.   It's not clear which DBAPI implementations
support multiple statements + variable declarations within the
cursor.execute() call.







> 
> Python Code
> 
> Python: 2.7 - SQLAlchemy (1.0.8) - SQL SERVER 2012
> 
>  
> 
> def OdbcEngineSA(driver, conn_str):
> 
> def connect():
> 
> return pyodbc.connect(conn_str, autocommit=True, timeout=120)
> 
> return sqlalchemy.create_engine(driver + '://', creator=connect)
> 
>  
> 
> def get_db_connection():
> 
> return OdbcEngineSA('mssql', 
> 'DSN=mssql;Server=server,15001;database=DEV;UID=user_abc;PWD=pw_')
> 
>  
> 
> def main():
> 
> db_connection = get_db_connection()
> 
> sql = """
> 
> DECLARE @age INT = 160
> 
> INSERT INTO TEST_TABLE VALUES ('QZ_TEST', @age + 1)
> 
> INSERT INTO TEST_TABLE VALUES ('QZ_TEST', 'not a number')
> 
> INSERT INTO ANOTHER_TABLE VALUES ('QZ_TEST', @age + 2)
> 
> """
> 
> try:
> 
> db_connection.execute(sql)
> 
> db_connection.commit()
> 
> logger.info('db updated')  
> 
> except Exception as e:
> 
> logger.error('Exception captured as expected: %s', e)
> 
> db_connection.rollback()
> 
> Please note that
> 
> INSERT INTO TEST_TABLE VALUES ('QZ_TEST', 'not a number')
> 
> will trigger an Error if I ran this single query with my SQL client: 
> [S0001][245] Conversion failed when converting the varchar value 'not a 
> number' to data type int.
> 
> 
> I'm expecting an exception captured by Python, however, the Python code runs 
> without any exception. There's no exception captured by Python even though I 
> replaced the SQL with:
> 
> BEGIN TRY
> 
> DECLARE @age INT = 160
> 
> INSERT INTO TEST_TABLE VALUES ('QZ_TEST', @age + 1)
> 
> INSERT INTO TEST_TABLE VALUES ('QZ_TEST', 'not a number')
> 
>INSERT INTO ANOTHER_TABLE VALUES ('QZ_TEST', @age + 2)
> 
> END TRY
> 
> BEGIN CATCH
> 
> DECLARE @ErrorMessage NVARCHAR(4000)
> 
> DECLARE @ErrorSeverity INT
> 
> DECLARE @ErrorState INT
> 
>  
> 
> SELECT
> 
> @ErrorMessage = ERROR_MESSAGE(),
> 
> @ErrorSeverity = ERROR_SEVERITY(),
> 
> @ErrorState = ERROR_STATE()
> 
>  
> 
> RAISERROR (@ErrorMessage,
> 
>@ErrorSeverity, -- Level 16
> 
>@ErrorState
> 
>)
> 
> END CATCH
> 
> My Questions
> 
> · Am I using the correct method to execute the Query?
> 
> · If my code was fine, how can I capture the actual SQL exception 
> from Python?
> 
> 
> 
> Many thanks in advance.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


Re: [sqlalchemy] Searching from jsonb list

2016-01-19 Thread Mike Bayer
call func.lower(expr) on the expression that you're comparing towards so
that it will render the SQL LOWER() function, then compare to a lower
case Python value.



On 01/19/2016 10:58 AM, Sami Pietilä wrote:
> I think I got "contains" and "cast" working for case sensitive exact
> string [.contains(cast(word, JSONB)))]. However I would like to match
> for case insensitive substrings like using [.ilike('%'+word+'%'))]. How
> can I specify to "contains" to match case insensitive? I also tried to
> use "%"+word+"%" with contains function but it did not seem to work. 
> 
>  
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to sqlalchemy+unsubscr...@googlegroups.com
> .
> To post to this group, send email to sqlalchemy@googlegroups.com
> .
> Visit this group at https://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


Re: [sqlalchemy] Latest SA version which support Jython

2016-01-19 Thread Mike Bayer
I've heard people are running 1.0.x with Jython.  It's more a matter of
Jython fixing their bugs, so if they've been doing that, try it out.



On 01/18/2016 09:23 PM, Jaimy Azle wrote:
> Hi all,
> 
> I know jython support was dropped from current version of sqlalchemy, 
> but here I'm stuck to keep use jython in our application due to the Java
> based technology infrastructures used.
> 
> In the past I did cancel upgrade from 0.7.2 since 0.7.3 and later
> introduce delayed import mechanism which tend to be source of problem in
> jython.
> 
> Since that,  I had to maintain our team focus on developing our project
> and had very little time to keep monitor SA development progress.
> 
> Now 0.7 was considered as legacy and I intend to upgrade our SA to the
> latest version but surely there is a barrier because of we did have to
> keep use jython.
> 
> Can anyone help to share a recommendation the latest SA version which
> support jython?
> 
> Salam,
> 
> Jaimy.
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to sqlalchemy+unsubscr...@googlegroups.com
> .
> To post to this group, send email to sqlalchemy@googlegroups.com
> .
> Visit this group at https://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.