This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description



deepest


“There are older and fouler things than Orcs in the deep places of the world.”

— Gandalf, from “The Lord of the Rings: The Fellowship of the Ring”, by J.R.R. Tolkien

deepest — A cross-platform (and cross-language) command-line utility used to determine the maximum depth of the current (or a specified) directory tree.

Available in both Python and C++ flavors (via the ShedSkin libraries).

Rationale

  • Needed a way to determine how close a project was getting to the 8-subdirectory limit defined by ISO-9660.
  • Needed a way to determine how close to MAX_PATH directories were getting.
    • MAX_PATH is defined as 260 characters on Windows: 3 for the drive (C:\), 1 for the terminating NULL character at the end, and 256 for directories, back-slashes, filenames, and extensions in the middle.
  • “Yes, but… Why Python?”
    • It’s faster for prototyping. (Bias… I’m just more familiar with it.)
    • It gave me an excuse to try out ShedSkin. :-)

Requirements

  • Python >= 2.6, 2.7, 3.2, 3.3, 3.4, possibly more…
  • ShedSkin >= 0.9.3, 0.9.4 — optional
  • g++ >= 4.6.2 or clang++ >= 3.2 — optional
  • MinGW/MSYS (2012-04-26 catalog) — optional

Installation

Python (Users):

pip install deepest

Python (Developers):

git clone git@github.com:markgollnick/deepest.git
cd deepest
python setup.py build install
# Alternatively...
make python
pip install dist/deepest-*.tar.gz

C++:

  1. Download and install ShedSkin (instructions).

  2. Run the following:

    ./3to2  # Make some minor adjustments for ShedSkin compatibility
    cd deepest  # This is the dir INSIDE the project's root dir
    shedskin deepest.py
    make
    # Alternatively, from the project's root dir...
    make cpp
    

Usage

Python:

Once installed, you can use it as a script…

$ deepest .
breadth of dirs examined    longest pathname    deepest directory
                      13                  58                    7

longest file: ./workspace/dwarves/digging/deep/deeper/deepest/balrog.log
deepest path: ./workspace/some/really/long/directory/chain/here

…or, you can use it as a library:

>>> import deepest
>>> deepest.get_depth('c:\\workspace')
('c:\\workspace\\some\\really\\long\\directory\\chain\\here', 7)
>>> deepest.get_length('c:\\workspace')
('c:\\workspace\\dwarves\\digging\\deep\\deeper\\deepest\\balrog.log', 59)

C++:

Once compiled, it is a (notably faster) alternative to the Python script:

$ deepest c:\\workspace
breadth of dirs examined    longest pathname    deepest directory
                      13                  59                    7

longest file: c:\workspace\dwarves\digging\deep\deeper\deepest\balrog.log
deepest path: c:\workspace\some\really\long\directory\chain\here

Speed

In a project containing well over 5000 directories with a max depth of 13, the Python and C++ versions (compiled with clang-503.0.40) were pitted against each other. Both versions were run three times each on a Late 2013 Mac Book Pro.

These are the averaged results:

$ time deepest  # Python script
...
real    0m0.423s
user    0m0.244s
sys     0m0.160s

$ time deepest  # C++ binary
...
real    0m0.169s
user    0m0.063s
sys     0m0.101s

In practical observation, using the compiled C++ version may gain you anywhere from a 10% to a whopping 60% boost in speed. :-)

License

Boost Software License, Version 1.0: <http://www.boost.org/LICENSE_1_0.txt>

Release History

Release History

2.0.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
deepest-2.0.0.tar.gz (7.9 kB) Copy SHA256 Checksum SHA256 Source Jan 17, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting