oopen 0.2.3-dev
Object-Oriented File and Path manipulation
License: MIT
Keywords: file path oo

OOpen
=====
*Object-Oriented file and path handling.*
-----------------------------------------



The std lib file and path options aren't very pythonic.

I should be able to perform basic tasks directly on the file.

**Status: In development.**

License: MIT
++++++++++++

`Semantic Versioning <http://semver.org/>`_
  I will commit to not breaking the public API within major versions.

**Donations**
  If you would like to support it's author, you may do so via `gittip <https://www.gittip.com/AJHekman/>`_.
  Thanks for your support!

Example usage:
--------------

>>> from oopen import OOpen
>>> oofile = OOpen('example_file.py')

Retrieve and set the name of a file:
++++++++++++++++++++++++++++++++++++
>>> oofile.name
'example_file.py'
>>> oofile.path
'/Users/ajhekman/Projects/oopen/oopen/example_file.py'
>>> oofile.name = 'test.txt'
>>> oofile.path
'/Users/ajhekman/Projects/oopen/oopen/test.txt'  # << note the changed filename
>>> oofile.location
'/Users/ajhekman/Projects/oopen/oopen/'

Retrieve other file information:
++++++++++++++++++++++++++++++++
>>> oofile.sha1 # all of the hashes within hashlib are supported (md5 to sha 512)
'e90296612f91b8adf498884b20c8356113c83a73'
>>> oofile.modified_time
datetime.datetime(2013, 1, 14, 9, 10, 31) # << file times are represented as native datetime objects





Install
-------

with pip (recommended):
+++++++++++++++++++++++
*Optional* use `virtualenv <http://pypi.python.org/pypi/virtualenv>`_:

- ``virtualenv venv``
- ``source venv/bin/activate``

``[sudo] pip install oopen``


with easy_install:
++++++++++++++++++

``sudo easy_install oopen``


from source:
++++++++++++
*update version numbers where appropriate*

`Download latest release from PyPI <http://pypi.python.org/pypi/oopen/>`_

``tar -xvzf oopen-x.x.x.tar.gz``

``cd oopen-x.x.x``

``[sudo] python setup.py install``

from git:
+++++++++
*Useful for specifying an exact commit, or for local development.*

``pip install-e git+https://github.com/ajhekman/OOpen#egg=oopen``

*you may also specify a tag or commit hash after the URL*

``pip install -e git+https://github.com/ajhekman/OOpen@0.1.1#egg=oopen``

``pip install -e git+https://github.com/ajhekman/OOpen@47f6e43cfc6391c06ae2a9eda6f63300c1b0558c#egg=oopen``


Uninstall:
----------

``pip uninstall oopen``




.. :changelog:

History
-------

0.2.3 (2013-01-24)
++++++++++++++++++

- using abspath for stat lookup
- Added multiline support to history generation regex

0.2.2 (2013-01-24)
++++++++++++++++++

- Fixed link formatting in similar projects

0.2.1 (2013-01-23)
++++++++++++++++++

- corrected tag-version sync

0.2.0 (2013-01-23)
++++++++++++++++++

- Added preliminary support for the extension property
- Added related projects to README


0.1.3 (2013-01-20)
++++++++++++++++++

- Added publishing tasks to fabfile


0.1.2 (2013-01-20)
++++++++++++++++++

- modified .gitignore
- Improvements to fabfile
- Made reSt modifications for github
- README.rst is now a compliation of INFO,INSTALL,HISTORY,LICENSE
- Further packaging and install improvements

0.1.1 (2013-01-20)
++++++++++++++++++

- Packaging updates

0.1.0 (2013-01-19)
++++++++++++++++++

- Initial Release
- For development only, needs to be tested.




Similar Projects:
-----------------
*not affiliated with oopen or it's author*

`Unipath <http://pypi.python.org/pypi/Unipath/>`_
   - Object-oriented alternative to os/os.path/shutil

`filepath <http://pypi.python.org/pypi/filepath/>`_
   - Object-oriented filesystem path representation.

`forked-path <http://pypi.python.org/pypi/forked-path/>`_
   - An object oriented file path module

`fpath <http://pypi.python.org/pypi/fpath/>`_
   - Filesystem paths as objects

`lilydjwg.Path <http://pypi.python.org/pypi/lilydjwg.Path/>`_
   - An object that handles path more easily

`path3 <http://pypi.python.org/pypi/path3/>`_
   - Object for working with files and directories

`pathlib <http://pypi.python.org/pypi/pathlib/>`_
   - Object-oriented filesystem paths

`pathobject <http://pypi.python.org/pypi/pathobject/>`_
   - An update of Jason Orendorff's path.py.

`xpathrecord <http://pypi.python.org/pypi/xpathrecord/>`_
   - XpathRecord: An XML to read-only Python objects library

`z3c.objpath <http://pypi.python.org/pypi/z3c.objpath/>`_
   - Generate and resolve paths to to objects.

`zope.traversing <http://pypi.python.org/pypi/zope.traversing/>`_
   - Resolving paths in the object hierarchy

--------


License
-------

| Copyright © 2012, 2013 Andrew Hekman
|
| Permission is hereby granted, free of charge, to any person obtaining
| a copy of this software and associated documentation files (the
| "Software"), to deal in the Software without restriction, including
| without limitation the rights to use, copy, modify, merge, publish,
| distribute, sublicense, and/or sell copies of the Software, and to
| permit persons to whom the Software is furnished to do so, subject to
| the following conditions:
|
| The above copyright notice and this permission notice shall be
| included in all copies or substantial portions of the Software.
|
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
| IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
| CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
| TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
| SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.