Hi all,
On the behalf of Spyder's development team
(http://code.google.com/p/spyderlib/people/list), I'm pleased to
announce that Spyder v2.1.2 has been released and is available for
Windows XP/Vista/7, GNU/Linux and MacOS X:
http://code.google.com/p/spyderlib/
As this is mostly a maintenance release, a lot of bugs were fixed and
some minor features were added:
http://code.google.com/p/spyderlib/wiki/ChangeLog
Spyder is a free, open-source (MIT license) interactive development
environment for the Python language with advanced editing, interactive
testing, debugging and introspection features. Originally designed to
provide MATLAB-like features (integrated help, interactive console,
variable explorer with GUI-based editors for dictionaries, NumPy
arrays, ...), it is strongly oriented towards scientific computing and
software development.
Thanks to the `spyderlib` library, Spyder also provides powerful
ready-to-use widgets: embedded Python console (example:
http://packages.python.org/guiqwt/_images/sift3.png), NumPy array
editor (example: http://packages.python.org/guiqwt/_images/sift2.png),
dictionary editor, source code editor, etc.
Description of key features with tasty screenshots can be found at:
http://code.google.com/p/spyderlib/wiki/Features
On Windows platforms, Spyder is also available as a stand-alone
executable (don't forget to disable UAC on Vista/7). This all-in-one
portable version is still experimental (for example, it does not embed
sphinx -- meaning no rich text mode for the object inspector) but it
should provide a working version of Spyder for Windows platforms
without having to install anything else (except Python 2.x itself, of
course).
Don't forget to follow Spyder updates/news:
* on the project website: http://code.google.com/p/spyderlib/
* and on our official blog: http://spyder-ide.blogspot.com/
Last, but not least, we welcome any contribution that helps making
Spyder an efficient scientific development/computing environment. Join
us to help creating your favourite environment!
(http://code.google.com/p/spyderlib/wiki/NoteForContributors)
Enjoy!
-Pierre
Hi,
Wingware has released version 4.1.1 of Wing IDE, an integrated development
environment designed specifically for the Python programming language.
Wing IDE is a cross-platform Python IDE that provides a professional code
editor with vi, emacs, and other key bindings, auto-completion, call tips,
refactoring, context-aware auto-editing, a powerful graphical debugger,
version control, unit testing, search, and many other features.
**Changes in Version 4.1.1**
Highlights of this release include:
* Goto-definition on symbols in the shells
* Expanded and improved auto-editing support (enable this in the Edit >
Keyboard Personality menu):
* Auto-closing
* Auto-enter invocation args
* Apply quote/comment/paren/etc to selection
* Auto-enter spaces
* Insert EOL and indent for new block
* Continue comment on new line
* Auto-indent when pasting multi-line text in Python code (undo once
restores
original indentation)
* Improved Smart Tab key option for Python
* Indent to Match menu and tool bar items toggle indentation to one indent
position lower if already at matching indent level
* Improved auto-indent of else, elif, except, and finally
* Experimental Turbo auto-completer mode for Python that treats any non-word
key as a completion key and Ctrl, Alt, and Command as a cancel keys
* Link to docs.python.org in Source Assistant
* Include argument names in auto-completer during invocation
* About 30 other bug fixes and minor improvements
Complete change log: http://wingware.com/pub/wingide/4.1.1/CHANGELOG.txt
**New Features in Version 4**
Version 4 adds the following new major features:
* Refactoring -- Rename/move symbols, extract to function/method, and
introduce variable
* Find Uses -- Find all points of use of a symbol
* Auto-Editing -- Reduce typing burden by auto-entering expected code
* Diff/Merge -- Graphical file and repository comparison and merge
* Django Support -- Debug Django templates, run Django unit tests, and more
* matplotlib Support -- Maintains live-updating plots in shell and debugger
* Simplified Licensing -- Includes all OSes and adds Support+Upgrades
subscriptions
Details on licensing changes: http://wingware.com/news/2011-02-16
**About Wing IDE**
Wing IDE is an integrated development environment designed specifically for
the Python programming language. It provides powerful editing, testing, and
debugging features that help reduce development and debugging time, cut down
on coding errors, and make it easier to understand and navigate Python code.
Wing IDE can be used to develop Python code for web, GUI, and embedded
scripting applications.
Wing IDE is available in three product levels: Wing IDE Professional is
the full-featured Python IDE, Wing IDE Personal offers a reduced feature
set at a low price, and Wing IDE 101 is a free simplified version designed
for teaching beginning programming courses with Python.
Version 4.0 of Wing IDE Professional includes the following major features:
* Professional quality code editor with vi, emacs, and other keyboard
personalities
* Code intelligence for Python: Auto-completion, call tips, find uses,
goto-definition, error indicators, refactoring, context-aware
auto-editing,
smart indent and rewrapping, and source navigation
* Advanced multi-threaded debugger with graphical UI, command line
interaction,
conditional breakpoints, data value tooltips over code, watch tool, and
externally launched and remote debugging
* Powerful search and replace options including keyboard driven and
graphical
UIs, multi-file, wild card, and regular expression search and replace
* Version control integration for Subversion, CVS, Bazaar, git,
Mercurial, and
Perforce
* Integrated unit testing with unittest, nose, and doctest frameworks
* Django support: Debugs Django templates, provides project setup tools,
and runs Django unit tests
* Many other features including project manager, bookmarks, code snippets,
diff/merge tool, OS command integration, indentation manager, PyLint
integration, and perspectives
* Extremely configurable and may be extended with Python scripts
* Extensive product documentation and How-Tos for Django, matplotlib,
Plone, wxPython, PyQt, mod_wsgi, Autodesk Maya, and many other frameworks
Please refer to http://wingware.com/wingide/features for a detailed listing
of features by product level.
System requirements are Windows 2000 or later, OS X 10.3.9 or later
(requires
X11 Server), or a recent Linux system (either 32 or 64 bit). Wing IDE
supports
Python versions 2.0.x through 3.2.x and Stackless Python.
For more information, see the http://wingware.com/
**Downloads**
Wing IDE Professional and Wing IDE Personal are commercial software and
require a license to run. A free trial can be obtained directly from the
product when launched.
Wing IDE Pro -- Full-featured product:
http://wingware.com/downloads/wingide/4.1
Wing IDE Personal -- A simplified IDE:
http://wingware.com/downloads/wingide-personal/4.1
Wing IDE 101 -- For teaching with Python:
http://wingware.com/downloads/wingide-101/4.1
**Purchasing and Upgrading**
Wing 4.x requires an upgrade for Wing IDE 2.x and 3.x users at a cost of
1/2 the full product pricing.
Upgrade a license: https://wingware.com/store/upgrade
Purchase a new license: https://wingware.com/store/purchase
Optional Support+Upgrades subscriptions are available for expanded
support coverage and free upgrades to new major releases:
http://wingware.com/support/agreement
Thanks!
--
The Wingware Team
Wingware | Python IDE
Advancing Software Development
www.wingware.com
[uliweb]
download: http://uliweb.googlecode.com/files/Uliweb-0.0.1a7.zip
project: http://code.google.com/p/uliwebhttps://github.com/limodou/uliweb
[plugs]
also plugs is a uliweb app collection project, and you can use it
download: http://plugs.googlecode.com/files/plugs-0.0.1b2.zip
project: http://code.google.com/p/plugs/https://github.com/limodou/plugs
About Uliweb----------------
Uliweb is a Python based web framework.
This project was created and lead by Limodou <limodou(a)gmail.com>.
License------------
Uliweb is released under BSD license.
Infrastructure----------------
Uliweb was not created totally from scratch. It uses some modules
created by other developers, for example:
* Werkzeug Used to handle core processes in the framework. For
example: command line tools , URL Mapping, Debug, etc.* SqlAlchemy The
ORM based on it. Developers can access databases, or use the module
separately.
I also referenced some code from other web frameworks, for example:
* The Templating system is styled after the one used in web2py several
improvements were made.
I also constructed a few new "wheels" myself. For example:
* Form processing module. Developers can use it to create HTML code,
validate submitted data and convert submitted data to Python data
types.* I18n processing including template support, language lazy
process.* Uliorm, which is an ORM module, was built on top of
SqlAlchemy. I also referenced from GAE datastore module.* Framework
runtime process.* Plugin mechanism, styled after the one used in the
UliPad project.
Features-----------
* Organization
* MVT(Model View Template) development model. * App-based project structure.
Uliweb organizes a project with small apps. Each app can have its
own configuration file(settings.ini), template directory, and static
directory. Existing apps can be easily reused, but are treated as a
compound. web application project if configured as such.
Developers can also reference static files and templates between
apps, thus easing inter-application data exchange. All apps in a
project are loaded by default if INSTALLED_APPS is not configured in
the configuration file. All separate app configuration files are
automatically processed at project startup.
* URL Mapping
Flexiable and powerful URL mapping. Uliweb uses werkzeug's routing
module. User can easily define a URL, which in turn can be easily
bound with a view function. URLs can also be created reversely
according to the view function name. It supports argument definitions
in URLs and default URL mapping to a view function. * View and
Template
View templates can be automatically applied. If you return a dict
variable from view function, Uliweb will automatically try to match
and apply a template according to the view function name. And now,
Uliweb also support Class View style. I hope you can enjoy it. *
Environment execution mode
Each view function will be run in an environment, which eliminates
the need to write many import statements. Plus there are already many
objects that can be used directly, for example: request, response,
etc. This is DRY and saves a lot of coding
Developers can directly use Python code in a template, the Python
code does not neede to be indented as long as a pass statement is
added at the end of each code block. Uliweb also supports child
template inclusion and inheritance.
* ORM
Uliorm is the default ORM module but not configured by default.
Developers are free to use any ORM module as preferred. Uliorm
supports model creation and automatic database migiration(table
creation and table structure modification).
* I18n
Can be used in python and template files. Browser language and
cookie settings are supported including automatic language switching.
Provides a command line tool that developers can use to extract .po
files. This can happen either at the app level or project level
process. It can automatically merge .pot files to existing .po files.
* Extension
Dispatch extension. This is a dispatch processing mechanism that
utilizes different types of dispatch points. So you can write
procedures to carry out special processes and bind them to these
dispatch points. For example, database initicalization, I18n process
initialization, etc. * Middleware extension
It's similar to Djangos. You can configure it in configuration
files. Each middleware can process the request and response objets.
Special function calls in the views module initial process. If you
write a special function named begin, it'll be processed before any
view function can be processed, this allows developers to do some
module level processing at that point, for example: check the user
authentication, etc. * Command Line Tools
* Create app, and include the basic essential directory structure,
files and code. * Export static files, you can export all available
apps' static files to a special directory. * Startup a development
web server thats supports debugging and autoreload.
* Deployment
* Supports easy deployment on the GAE platform. * Supports
mod_wsgi, cgi, fast_cgi, scgi, uwsgi.
* Development
Provide a development server, and can be automatically reload when
some module files are modified.
* Misc.
Various demos are available for anyone interested in learning more
about Uliweb. It includes all core codes and also all source code of
uliwebproject , and some other demo codes, which can be used
directly/freely as you wish. * static file serving support.
Uliweb supports static file access directly, and it can also process
HTTP_IF_MODIFIED_SINCE and return static file content in trunk.
Principle----------
* Simple and easy to use web framework.* Reusability and configurable
are the main ideas about Uliweb.* The web framework should be
flexiable and easy to extend.
Links--------
* Plugs is a Uliweb apps collection project, you can visit it at
https://github.com/limodou/plugs* uliweb-doc is a documentation
project of Uliweb, you can visit it at
https://github.com/limodou/uliweb-doc, and you can also read the
compiled documentation at http://uliweb.rtfd.org* uliwebzone is a
community project of Uliweb, you can visit it at
https://github.com/limodou/uliwebzone, and you can also see online
demo which hosted in dotcloud http://www.uliweb.dotcloud.com/.
--
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: http://code.google.com/p/uliweb/
My Blog: http://hi.baidu.com/limodou
Hi all,
I am pleased to announce the availability of SciPy 0.10.0. For this release
over a 100 tickets and pull requests have been closed, and many new
features have been added. Some of the highlights are:
- support for Bento as a build system for scipy
- generalized and shift-invert eigenvalue problems in sparse.linalg
- addition of discrete-time linear systems in the signal module
Sources and binaries can be found at , release notes are copied below.
Enjoy,
The SciPy developers
==========================
SciPy 0.10.0 Release Notes
==========================
.. contents::
SciPy 0.10.0 is the culmination of 8 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and
better documentation. There have been a limited number of deprecations
and backwards-incompatible changes in this release, which are documented
below. All users are encouraged to upgrade to this release, as there
are a large number of bug-fixes and optimizations. Moreover, our
development attention will now shift to bug-fix releases on the 0.10.x
branch, and on adding new features on the development master branch.
Release highlights:
- Support for Bento as optional build system.
- Support for generalized eigenvalue problems, and all shift-invert modes
available in ARPACK.
This release requires Python 2.4-2.7 or 3.1- and NumPy 1.5 or greater.
New features
============
Bento: new optional build system
--------------------------------
Scipy can now be built with `Bento <http://cournape.github.com/Bento/>`_.
Bento has some nice features like parallel builds and partial rebuilds, that
are not possible with the default build system (distutils). For usage
instructions see BENTO_BUILD.txt in the scipy top-level directory.
Currently Scipy has three build systems, distutils, numscons and bento.
Numscons is deprecated and is planned and will likely be removed in the next
release.
Generalized and shift-invert eigenvalue problems in ``scipy.sparse.linalg``
---------------------------------------------------------------------------
The sparse eigenvalue problem solver functions
``scipy.sparse.eigs/eigh`` now support generalized eigenvalue
problems, and all shift-invert modes available in ARPACK.
Discrete-Time Linear Systems (``scipy.signal``)
-----------------------------------------------
Support for simulating discrete-time linear systems, including
``scipy.signal.dlsim``, ``scipy.signal.dimpulse``, and
``scipy.signal.dstep``,
has been added to SciPy. Conversion of linear systems from continuous-time
to
discrete-time representations is also present via the
``scipy.signal.cont2discrete`` function.
Enhancements to ``scipy.signal``
--------------------------------
A Lomb-Scargle periodogram can now be computed with the new function
``scipy.signal.lombscargle``.
The forward-backward filter function ``scipy.signal.filtfilt`` can now
filter the data in a given axis of an n-dimensional numpy array.
(Previously it only handled a 1-dimensional array.) Options have been
added to allow more control over how the data is extended before filtering.
FIR filter design with ``scipy.signal.firwin2`` now has options to create
filters of type III (zero at zero and Nyquist frequencies) and IV (zero at
zero
frequency).
Additional decomposition options (``scipy.linalg``)
---------------------------------------------------
A sort keyword has been added to the Schur decomposition routine
(``scipy.linalg.schur``) to allow the sorting of eigenvalues in
the resultant Schur form.
Additional special matrices (``scipy.linalg``)
----------------------------------------------
The functions ``hilbert`` and ``invhilbert`` were added to ``scipy.linalg``.
Enhancements to ``scipy.stats``
-------------------------------
* The *one-sided form* of Fisher's exact test is now also implemented in
``stats.fisher_exact``.
* The function ``stats.chi2_contingency`` for computing the chi-square test
of
independence of factors in a contingency table has been added, along with
the related utility functions ``stats.contingency.margins`` and
``stats.contingency.expected_freq``.
Basic support for Harwell-Boeing file format for sparse matrices
----------------------------------------------------------------
Both read and write are support through a simple function-based API, as
well as
a more complete API to control number format. The functions may be found in
scipy.sparse.io.
The following features are supported:
* Read and write sparse matrices in the CSC format
* Only real, symmetric, assembled matrix are supported (RUA format)
Deprecated features
===================
``scipy.maxentropy``
--------------------
The maxentropy module is unmaintained, rarely used and has not been
functioning
well for several releases. Therefore it has been deprecated for this
release,
and will be removed for scipy 0.11. Logistic regression in scikits.learn
is a
good alternative for this functionality. The ``scipy.maxentropy.logsumexp``
function has been moved to ``scipy.misc``.
``scipy.lib.blas``
------------------
There are similar BLAS wrappers in ``scipy.linalg`` and ``scipy.lib``.
These
have now been consolidated as ``scipy.linalg.blas``, and ``scipy.lib.blas``
is
deprecated.
Numscons build system
---------------------
The numscons build system is being replaced by Bento, and will be removed in
one of the next scipy releases.
Backwards-incompatible changes
==============================
The deprecated name `invnorm` was removed from
``scipy.stats.distributions``,
this distribution is available as `invgauss`.
The following deprecated nonlinear solvers from ``scipy.optimize`` have been
removed::
- ``broyden_modified`` (bad performance)
- ``broyden1_modified`` (bad performance)
- ``broyden_generalized`` (equivalent to ``anderson``)
- ``anderson2`` (equivalent to ``anderson``)
- ``broyden3`` (obsoleted by new limited-memory broyden methods)
- ``vackar`` (renamed to ``diagbroyden``)
Other changes
=============
``scipy.constants`` has been updated with the CODATA 2010 constants.
``__all__`` dicts have been added to all modules, which has cleaned up the
namespaces (particularly useful for interactive work).
An API section has been added to the documentation, giving recommended
import
guidelines and specifying which submodules are public and which aren't.
Authors
=======
This release contains work by the following people (contributed at least
one patch to this release, names in alphabetical order):
* Jeff Armstrong +
* Matthew Brett
* Lars Buitinck +
* David Cournapeau
* FI$H 2000 +
* Michael McNeil Forbes +
* Matty G +
* Christoph Gohlke
* Ralf Gommers
* Yaroslav Halchenko
* Charles Harris
* Thouis (Ray) Jones +
* Chris Jordan-Squire +
* Robert Kern
* Chris Lasher +
* Wes McKinney +
* Travis Oliphant
* Fabian Pedregosa
* Josef Perktold
* Thomas Robitaille +
* Pim Schellart +
* Anthony Scopatz +
* Skipper Seabold +
* Fazlul Shahriar +
* David Simcha +
* Scott Sinclair +
* Andrey Smirnov +
* Collin RM Stocks +
* Martin Teichmann +
* Jake Vanderplas +
* Gaël Varoquaux +
* Pauli Virtanen
* Stefan van der Walt
* Warren Weckesser
* Mark Wiebe +
A total of 35 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
Hi all,
There's a new release of CaptureMock out. For Python users the main
enhancement/fix is that you can now inherit from classes that are
intercepted while not intercepting your derived class itself (if you
follow that).
Regards,
Geoff Bache
More detail:
CaptureMock is a tool for creating mocks via a "true" capture-replay
style approach. It records interactions to a separate file which can
then be used for replay in future runs. It is thus not another
"EasyMock" clone. Interaction can be recaptured from a real
system at any point, and no mock code needs to be written. It handles
Python calls, command-line programs, and synchronous messaging over
networks. Custom clients can now also be written for any language.
Website: http://www.texttest.org/index.php?page=capturemock
Mailing list: https://lists.sourceforge.net/lists/listinfo/texttest-users
tox 1.2: the virtualenv-based test run automatizer
===========================================================================
I am happy to announce tox 1.2, now using and depending on the latest
virtualenv code and containing some bug fixes. TOX automates tedious
test activities driven from a simple ``tox.ini`` file, including:
* creation and management of different virtualenv environments with
different Python interpreters
* packaging and installing your package into each of them
* running your test tool of choice, be it nose, py.test or unittest2 or
other tools such as "sphinx" doc checks
* testing dev packages against each other without needing to upload to PyPI
It works well on virtually all Python interpreters that support virtualenv.
Docs and examples are at:
http://tox.testrun.org
Installation:
pip install -U tox
code hosting and issue tracking on bitbucket:
http://bitbucket.org/hpk42/tox
best,
Holger Krekel
1.2 compared to 1.1
---------------------
- remove the virtualenv.py that was distributed with tox and depend
on virtualenv-1.6.4 (possible now since the latter fixes a few bugs
that the inling tried to work around)
- fix issue10: work around UnicodeDecodeError when inokving pip (thanks
Marc Abramowitz)
- fix a problem with parsing {posargs} in tox commands (spotted by goodwill)
- fix the warning check for commands to be installed in testevironment
(thanks Michael Foord for reporting)
I'm happy to announce version 0.8 of IMAPClient - an easy-to-use,
Pythonic and complete IMAP client library with no dependencies outside
the Python standard library.
Highlights for version 0.8:
* OAUTH authentication support
* IDLE support
* Full NOOP support
* Comprehensive Sphinx based docs. A HTML version of the docs is
included in the source distribution. They are also hosted online at
http://imapclient.readthedocs.org/
* Folder rename support
* New "debug" property to simplify protocol debugging
* Live test and interactive shell features are now part of the
imapclient Python package and can be called from the command-line.
* New normalise_times attribute allows caller to select whether
datetimes returned by fetch() are native or not
* interactive shell now works with both IPython 0.10 and 0.11 (and
later)
* BODY/BODYSTRUCTURE parsing fixes
* Programmer friendly version information now available
(imapclient.version_info)
IMAPClient currently works with Python 2.4 through 2.7.
Version 0.8 can be installed from PyPI (pip install imapclient) or
downloaded from http://freshfoo.com/projects/IMAPClient/IMAPClient-0.8.zip
For further information see:
Project website: http://imapclient.freshfoo.com/
Documentation: http://imapclient.readthedocs.org/
NEWS: http://imapclient.freshfoo.com/browser/NEWS
README: http://imapclient.freshfoo.com/browser/README
-Menno
Chicago Python User Group
=====================
RSVP now at http://chipy.org/
All we can say is "h-e-double hockey sticks, Yes!"...
Eric Stein will go over Python Video Streaming with lidless--lidless
is a program for monitoring motion-jpeg camera feeds and interfacing
them to IRC and the web, allowing users to request info on how busy
the view captured by the cameras are and view historical information
about busyness.
Next up, ChiPy will have a programming contest. You will be provided
with: 10 questions, a time limit of 20 minutes, a text file, and
your laptop with python3 pre loaded. Those who write code to solve all
10 questions first will win $100.00. You must provide your running
code that solves the problems. We will review as a group.
Food and Drink will be provided by our sponsors. Free event, bring
your self, bring a friend, and bring a coworker. Forward this to
others!
When: November 10th 2011 7 p.m
Where: ITA 15th Floor 200 S. Wacker Drive Chicago, IL 60606
312.435.2805
Join us for the best meeting ever!
ITA is close to all sorts of public transit.
If you drive:
http://spothero.com/ita-/-technexus/chicago-python-user-group-11-10-2011
$6 loop parking.
You will need to RSVP at http://chipy.org/
RSVP Quick Links:
YES http://chipy.org/meetings/rsvp/41/yes
MAYBE http://chipy.org/meetings/rsvp/41/maybe
You can also RSVP to brianhray (at) gmail (dot) com or call or TXT to
773 669 7717. Leave your name.
About the group
---------------
ChiPy is a group of Chicago Python Programmers, l33t, and n00bs.
Meetings are held monthly at various locations around Chicago. Also,
ChiPy is a proud sponsor of many Open Source and Educational efforts
in Chicago. Stay tuned to the mailing list for more info.
ChiPy website: <http://chipy.org>
ChiPy Mailing List: <http://mail.python.org/mailman/listinfo/chicago>
ChiPy Announcement *ONLY* Mailing List:
<http://mail.python.org/mailman/listinfo/chipy-announce>
Python website: <http://python.org>
Logya is command line tool to generate static Web sites, designed to be easy to use and flexible.
Content documents contain header information like url, title, scripts and css files to use and a body with HTML markup, they are stored in .html files. Users have full control over a site's layout and design, templates are rendered with jinja2. Logya provides a serve command to immediately view changes to a site's content and static files.
As of today version 1.0 is available from PyPI at http://pypi.python.org/pypi/logya and can be installed with:
sudo pip install logya
The source code is also available from Github at https://github.com/yaph/logya and documentation can be found at http://yaph.github.com/logya/
I appreciate feedback and wish you happy Web site creation!
I'm pleased to announce the first stable release of the pysnmp
library -- fully-featured, standards compliant SNMP engine coded in
pure Python.
http://sourceforge.net/projects/pysnmp/
The pysnmp library is designed to be easy to use for a simple matters,
yet flexible enough to handle enterprise-grade network management
operations.
The built-in SNMP engine can talk SNMP v1, v2c and v3, and act
Manager, Agent and Proxy roles. The whole system is designed to
fit into an asynchronous I/O framework (asyncore and Twisted are
readily supported).
The library is shipped along with a programmer's tutorial:
http://pysnmp.sourceforge.net/
and a collection of command-line SNMP management tools.
The whole codebase has been tested with Python 2.4 through 3.2 on Linux,
Windows and MacOS systems.
-ilya