From info at egenix.com Mon May 11 14:59:10 2015 From: info at egenix.com (eGenix Team: M.-A. Lemburg) Date: Mon May 11 13:59:19 2015 Subject: [egenix-users] ANN: eGenix PyRun - One file Python Runtime 2.1.0 Message-ID: <5550998E.4010704@egenix.com> ________________________________________________________________________ ANNOUNCING eGenix PyRun - One file Python Runtime Version 2.1.0 An easy-to-use single file relocatable Python run-time - available for Linux, Mac OS X and Unix platforms, with support for Python 2.6, 2.7 and **also for Python 3.4**. This announcement is also available on our web-site for online reading: http://www.egenix.com/company/news/eGenix-PyRun-2.1.0-GA.html ________________________________________________________________________ INTRODUCTION eGenix PyRun is our open source, one file, no installation version of Python, making the distribution of a Python interpreter to run based scripts and applications to Unix based systems as simple as copying a single file. eGenix PyRun's executable only needs 11MB for Python 2 and 13MB for Python 3, but still supports most Python application and scripts - and it can be compressed to just 3-4MB using upx, if needed. Compared to a regular Python installation of typically 100MB on disk, eGenix PyRun is ideal for applications and scripts that need to be distributed to several target machines, client installations or customers. It makes "installing" Python on a Unix based system as simple as copying a single file. eGenix has been using eGenix PyRun internally in the mxODBC Connect Server product since 2008 with great success and decided to make it available as a stand-alone open-source product. We provide both the source archive to build your own eGenix PyRun, as well as pre-compiled binaries for Linux, FreeBSD and Mac OS X, as 32- and 64-bit versions. The binaries can be downloaded manually, or you can let our automatic install script install-pyrun take care of the installation: ./install-pyrun dir and you're done. Please see the product page for more details: http://www.egenix.com/products/python/PyRun/ ________________________________________________________________________ NEWS This major new release of eGenix PyRun 2.1 comes with the following new features and changes: New Features ------------ * Upgraded eGenix PyRun to work with and use Python 2.7.9 per default. * Upgraded eGenix PyRun to work with and use Python 3.4.3 for Python 3 support. * Added support for setting rpath on the PyRun binary to make it easy to ship external libraries together with PyRun, without having to set the LD_LIBRARY_PATH variable. * Added special support for egenix-pyopenssl to load its OpenSSL libs during startup. * PyRun allows to disable the new default HTTPS certificate verification (PEP 476) by setting the env var PYRUN_HTTPSVERIFY to 0. Default is to apply certificate verification. * Add support for more Python command line options: -s and -3 are ignored, -R raises an error explaining to use the PYTHONHASHSEED env var instead, -B prevents writing of byte code files.This should increase compatibility of PyRun with the standard Python command line interface. Enhancements / Changes ---------------------- * Added patch for Python 2.7.9 and 3.4.3 to make ctypes work again after changes to those versions of Python. See https://bugs.python.org/issue23042 for details. * The PyRun -v command line switch will now be passed to Python and supports setting the level using e.g. -vv for a verbose 2 level. * Disabled user site configurations in PyRun, since these are not needed or wanted for typical PyRun uses and cost startup time. * Optimized sys.path setup a bit. PyRun won't check for a Python build run and will not check lib/site-python on startup anymore. * PyRun for Python 3.4 is no longer compiled to always run in optimized mode. This allows using asserts in tests again. Fixes ----- * Entering "license" in the interactive shell now returns the correct URL for all supported Python versions. * Tilde expansion now works for most arguments of install-pyrun. This wasn't working before due to a bug. install-pyrun Quick Install Enhancements --------------------------------------------- eGenix PyRun includes a shell script called install-pyrun, which greatly simplifies installation of PyRun. It works much like the virtualenv shell script used for creating new virtual environments (except that there's nothing virtual about PyRun environments). https://downloads.egenix.com/python/install-pyrun With the script, an eGenix PyRun installation is as simple as running: ./install-pyrun targetdir This will automatically detect the platform, download and install the right pyrun version into targetdir. We have updated this script since the last release: * Updated install-pyrun to default to eGenix PyRun 2.1.0 and its feature set. * Added -r/--requirements option which allows automatically installing a set of required packages using a requirements file, so you can easily set up a complete Python environment using a single ./install-pyrun -r requirements.txt targetdir * Updated install-pyrun to install pyrun 2.1.0, setuptools 15.2 and pip 1.5.6 per default. For a complete list of changes, please see the eGenix PyRun Changelog: http://www.egenix.com/products/python/PyRun/changelog.html ________________________________________________________________________ LICENSE eGenix PyRun is distributed under the eGenix.com Public License 1.1.0 which is an Open Source license similar to the Python license. You can use eGenix PyRun in both commercial and non-commercial settings without fee or charge. Please see our license page for more details: http://www.egenix.com/products/python/PyRun/license.html The package comes with full source code. ________________________________________________________________________ DOWNLOADS The download archives and instructions for installing eGenix PyRun can be found at: http://www.egenix.com/products/python/PyRun/ As always, we are providing pre-built binaries for all common platforms: Windows 32/64-bit, Linux 32/64-bit, FreeBSD 32/64-bit, Mac OS X 32/64-bit. Source code archives are available for installation on other platforms, such as Solaris, AIX, HP-UX, etc. _______________________________________________________________________ SUPPORT Commercial support for this product is available from eGenix.com. Please see http://www.egenix.com/services/support/ for details about our support offerings. ________________________________________________________________________ MORE INFORMATION For more information about eGenix PyRun, licensing and download instructions, please visit our web-site: http://www.egenix.com/products/python/PyRun/ About Python (http://www.python.org/): Python is an object-oriented Open Source programming language which runs on all modern platforms. By integrating ease-of-use, clarity in coding, enterprise application connectivity and rapid application design, Python establishes an ideal programming platform for today's IT challenges. About eGenix (http://www.egenix.com/): eGenix is a software project, consulting and product company specializing in expert project services and professional quality products for companies, Python users and developers. Enjoy, -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, May 11 2015) >>> Python Projects, Coaching and Consulting ... http://www.egenix.com/ >>> mxODBC Plone/Zope Database Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ ::::: Try our mxODBC.Connect Python Database Interface for free ! :::::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/ From info at egenix.com Wed May 13 11:58:03 2015 From: info at egenix.com (eGenix Team: M.-A. Lemburg) Date: Wed May 13 10:58:14 2015 Subject: [egenix-users] ANN: eGenix mxODBC Connect 2.1.3 - Remote Python Database Interface Message-ID: <5553121B.4040305@egenix.com> ________________________________________________________________________ ANNOUNCING eGenix.com mxODBC Connect Remote Python Database Interface Version 2.1.3 mxODBC Connect is our commercially supported client-server product for connecting Python applications to relational databases in a truly platform independent way. This announcement is also available on our web-site for online reading: http://www.egenix.com/company/news/eGenix-mxODBC-Connect-2.1.3-GA.html ________________________________________________________________________ INTRODUCTION The mxODBC Connect Database Interface for Python allows users to easily connect Python applications to all major databases on the market today in a highly portable, convenient and secure way. Python Database Connectivity the Easy Way ----------------------------------------- Unlike our mxODBC Python extension, mxODBC Connect is designed as client-server application, so you no longer need to find production quality database drivers for all the platforms you target with your Python application. Instead, you use an easy to install royalty-free Python client library which connects directly to the mxODBC Connect database server over the network. This makes mxODBC Connect a great basis for writing cross-platform multi-tier database applications and utilities in Python, especially if you run applications that need to communicate with databases such as MS SQL Server and MS Access, Oracle Database, IBM DB2 and Informix, Sybase ASE and Sybase Anywhere, MySQL, PostgreSQL, SAP MaxDB and many more, that run on Windows or Linux machines. Ideal for Database Driven Client Applications --------------------------------------------- By removing the need to install and configure ODBC drivers on the client side and dealing with complicated network setups for each set of drivers, mxODBC Connect greatly simplifies deployment of database driven client applications, while at the same time making the network communication between client and database server more efficient and more secure. For more information, please have a look at the mxODBC Connect product page, in particular, the full list of available features. For more information, please see the product page: http://www.egenix.com/products/python/mxODBCConnect/ ________________________________________________________________________ NEWS mxODBC Connect 2.1.3 is a patch level release of our successful mxODBC Connect database product. It includes these enhancements and fixes: Security Enhancements --------------------- * Updated included OpenSSL libraries to 1.0.1m. See https://www.openssl.org/news/secadv_20150319.txt for a complete list of changes. Among other security fixes, this addresses the FREAK Attack (CVE-2015-0204). * Upgraded default RSA key length for demo certificates to 2048 bits. mxODBC Connect Enhancements --------------------------- * Upgraded eGenix PyRun used for mxODBC Connect Server on Linux to 2.1.0. * Upgraded the Python version used for mxODBC Connect Server to 2.7.9. * Fixed a bug causing pip uninstall not to remove .pyc/.pyo files * Resolved an intermittent error related to hash seeds which sometimes caused prebuilt archives to not install correctly. Thanks to Albert-Jan Roskam for reporting this. mxODBC API Enhancements ----------------------- * Upgraded the mxODBC Connect Server to mxODBC 3.3.2: https://cms.egenix.com/company/news/eGenix-mxODBC-3.3.2-GA.html MS SQL Server ------------- * Fixed an "ODBC driver sent negative string size" error when using empty strings or None with output parameters for SQL Server ODBC drivers. * Clarified that due to the way the SQL Server ODBC driver sends data, mixing output parameters and output result sets is not possible. A work-around for this is to send back output parameters as additional result set. SAP Sybase ASE -------------- * Added a work-around for the Sybase ASE ODBC driver which has problems with BIGINT columns. These are now supported. * Fixed a possible "ODBC driver sent negative string size" error when using empty strings or None with output parameters for Sybase ASE ODBC drivers. Fixes ----- * Fixed the handling of None as default value for output parameters in e.g. stored procedures to use VARCHAR binding rather than CHAR binding. The latter caused padding with some database backends. * Changed cursor.colcount to be determined on-demand rather than right after the prepare step of statement execution. For the full set of changes, including those of the 2.1 series of mxODBC Connect, please check the mxODBC Connect change log: http://www.egenix.com/products/python/mxODBCConnect/changelog.html ________________________________________________________________________ UPGRADING You are encouraged to upgrade to this latest mxODBC Connect release. When upgrading, please always upgrade both the server and the client installations to the same version - even for patch level releases. We will give out 20% discount coupons for upgrade purchases going from mxODBC Connect Server 1.x to 2.1 and 50% coupons for upgrades from mxODBC Connect Server 2.x to 2.1. Please contact the eGenix.com Sales Team (sales@egenix.com) with your existing license serials for details. Users of our stand-alone mxODBC product will have to purchase new licenses from our online shop in order to use mxODBC Connect. You can request free 30-day evaluation licenses by visiting our web-site or writing to sales@egenix.com, stating your name (or the name of the company) and the number of eval licenses that you need. http://www.egenix.com/products/python/mxODBCConnect/#Evaluation ________________________________________________________________________ DOWNLOADS The download archives as well as instructions for installation and configuration of the product can be found on the product page: http://www.egenix.com/products/python/mxODBCConnect/ If you want to try the package, jump straight to the download instructions: https://cms.egenix.com/products/python/mxODBCConnect/#Download Fully functional evaluation licenses for the mxODBC Connect Server are available free of charge: http://www.egenix.com/products/python/mxODBCConnect/#Evaluation The mxODBC Connect Client is always free of charge. _______________________________________________________________________ SUPPORT Commercial support for this product is available from eGenix.com. Please see http://www.egenix.com/services/support/ for details about our support offerings. _______________________________________________________________________ INFORMATION About Python (http://www.python.org/): Python is an object-oriented Open Source programming language which runs on all modern platforms. By integrating ease-of-use, clarity in coding, enterprise application connectivity and rapid application design, Python establishes an ideal programming platform for today's IT challenges. About eGenix (http://www.egenix.com/): eGenix is a software project, consulting and product company focusing on expert project services and professional quality products for companies, Python users and developers. Enjoy, -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, May 13 2015) >>> Python Projects, Coaching and Consulting ... http://www.egenix.com/ >>> mxODBC Plone/Zope Database Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ ::::: Try our mxODBC.Connect Python Database Interface for free ! :::::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/ From mal at egenix.com Wed May 13 14:22:22 2015 From: mal at egenix.com (M.-A. Lemburg) Date: Wed May 13 13:22:30 2015 Subject: [egenix-users] egenix mxodbc 3.3.1 and SQLAlchemy In-Reply-To: <552E8B27.5000808@egenix.com> References: <552E8B27.5000808@egenix.com> Message-ID: <555333EE.3030507@egenix.com> On 15.04.2015 18:00, M.-A. Lemburg wrote: > Hi Vinay, > > the error you are seeing basically means that the ODBC driver > does not return a correct .rowcount value. mxODBC does support > .rowcount, but whether it actually works depends on the ODBC > driver used to access the database and the database backend > itself (several databases don't provide this information, > since it is sometimes expensive to calculate). > > We can look into this, but would have to know which SQL Server > version you are using, since different backend version behave > differently. > > Also: Could you send the traceback you are getting. This > will have a hint to what .rowcount returns. > > Do you have example code for the select failure with 0.9.0 ? > > Note that we do not maintain the SA backend for mxODBC. > We do send licenses to Michael Bayer so that he can test > with mxODBC (including for the 3.3 release). Just as follow-up to this: The FreeTDS ODBC driver had an issue supporting .rowcount for SELECTs at the time we released 3.2, so the attributes was fixed to -1 in order to not cause confusion by returning wrong data. We will check whether we can reenable the feature for more recent FreeTDS driver versions. The MS ODBC drivers for Windows and Linux only support .rowcount for INSERTs and UPDATEs, but not for SELECTs. In any case: it you can, please use the MS ODBC driver for Linux instead of FreeTDS. The MS driver for Linux is much more compatible to the MS driver for Windows and provides access to more features than FreeTDS at the moment. On other platforms, you can also look at mxODBC Connect, which allows you to always run with the MS SQL Server driver for Windows, regardless of the platform your client is using. Regards, -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, May 13 2015) >>> Python Projects, Coaching and Consulting ... http://www.egenix.com/ >>> mxODBC Plone/Zope Database Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ 2015-05-13: Released mxODBC Connect 2.1.3 ... http://egenix.com/go75 2015-05-11: Released eGenix PyRun 2.1.0 ... http://egenix.com/go74 2015-05-25: PyWaw Summit 2015, Warsaw, Poland ... 12 days to go eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/ From jh at web.de Sat May 23 12:57:37 2015 From: jh at web.de (=?UTF-8?B?SsO8cmdlbiBIZXJtYW5u?=) Date: Sat May 23 11:57:41 2015 Subject: [egenix-users] PyRun and PEX In-Reply-To: <555E2146.2090708@web.de> References: <555E2146.2090708@web.de> Message-ID: <55604F11.20209@web.de> Hi, I tried (with success) to concatenate PyRun and a PEX to get a single distribution artifact for one-command projects (i.e. tools and services). The only wart is that one still needs to pass the "script name" to PyRun, else it starts the REPL. What do you think about a startup check to see if the PyRun executable is also a ZIP file, and then behave as-if sys.argv[0] was also passed as the first parameter? [PEX = https://github.com/pantsbuild/pex] -------------- next part -------------- An HTML attachment was scrubbed... URL: /mailman-archives/egenix-users/attachments/20150523/9e1c1002/attachment.htm From mal at egenix.com Sat May 23 23:48:16 2015 From: mal at egenix.com (M.-A. Lemburg) Date: Sat May 23 22:48:20 2015 Subject: [egenix-users] PyRun and PEX In-Reply-To: <55604F11.20209@web.de> References: <555E2146.2090708@web.de> <55604F11.20209@web.de> Message-ID: <5560E790.1060505@egenix.com> On 23.05.2015 11:57, J?rgen Hermann wrote: > Hi, I tried (with success) to concatenate PyRun and a PEX to get a single distribution artifact for > one-command projects (i.e. tools and services). The only wart is that one still needs to pass the > "script name" to PyRun, else it starts the REPL. > > What do you think about a startup check to see if the PyRun executable is also a ZIP file, and then > behave as-if sys.argv[0] was also passed as the first parameter? We are currently investigating on how to achieve exactly that :-) There are two things we'd like to add: 1. a way to combine PyRun with a ZIP file which contains Python code (this can be done by simply concatenating PyRun with the ZIP file and adding sys.executable to sys.path) 2. adding support to compile in other Python packages into a custom PyRun binary (this is somewhat more complicated, but still well within range) For both features, we'd like to auto-import a module from the Python package when PyRun starts in this mode. I guess we could easily do this by trying to import a special module pyrun_startup.py in this mode. The module could then be provided by the package and then do whatever is needed to run the package. Another option would be to compile in the package name and then run "-m package" when PyRun is started in the combined mode. > [PEX = https://github.com/pantsbuild/pex] BTW: I don't think you really need PEX in such a setup. The package put into a ZIP file and PyRun should be enough. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ ::: Try our new mxODBC.Connect Python Database Interface for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/