A pure-python non-repeating outside-in spiral iterator-generator for 2D arrays
Project description
# README #
Take any two dimensional list like object that supports indexing as input and output a circular clockwise shrinking
spiral of elements from the input beginning at the top left most corner (ie: input[0][0]) until all the input is
exhausted.
This will work on lists of any size in either dimension.
[ ![Codeship Status for sys-git/spirol](https://codeship.com/projects/b8f6bef0-5132-0132-d6d9-0ea8256ccae9/status)](https://codeship.com/projects/48263)
[![Build Status](https://api.shippable.com/projects/54afbe1ad46935d5fbc1e904/badge?branchName=master)](https://app.shippable.com/projects/54afbe1ad46935d5fbc1e904/builds/latest)
* Version 1.0.3
### How do I get set up? ###
* **python setup.py install**
* Dependencies: **shifty (v0.0.3)**
* How to run tests: **./runtests.sh**
* Deployment instructions: **pip install spirol**
### What about test coverage? ###
There is a full suite of unit-tests.
### Contribution guidelines ###
I accept pull requests.
### Who do I talk to? ###
* Francis Horsman: **francis.horsman@gmail.com**
### Example ###
```
>>> from spirol import spirol
>>> a = spirol([[1,2,3], [4,5,6], [7,8,9]], (3, 3))
>>> a
spirol(3, 3, clockwise from tl)
>>> [i for i in a]
[1, 2, 3, 6, 9, 8, 7, 4, 5]
>>> print(a)
spirol(3, 3, clockwise from tl): [1, 2, 3, 6, 9, 8, 7, 4, 5]
>>> len(a)
9
>>> a = spirol([[1,2,3], [4,5,6], [7,8,9]], (3, 3), corner='br', direction='counterclock')
>>> a
spirol(3, 3, counterclock from br)
>>> [i for i in a]
[9, 6, 3, 2, 1, 4, 7, 8, 5]
```
.. :changelog:
Changelog
=========
1.0.7 2015-01-09
----------------
* fixed setup
1.0.6 2015-01-09
----------------
* Updated tagger to publish to pypi
1.0.5 2015-01-09
----------------
* updated tagger
1.0.4 2015-01-09
----------------
* updated tagger
1.0.3 2015-01-09
----------------
* Updated readme
1.0.2 2015-01-09
----------------
* Updated readme to pull in shippable status.
1.0.1 2015-01-09
----------------
* Added tox, versioneer
1.0.0 2014-11-19
----------------
* Production stable
Take any two dimensional list like object that supports indexing as input and output a circular clockwise shrinking
spiral of elements from the input beginning at the top left most corner (ie: input[0][0]) until all the input is
exhausted.
This will work on lists of any size in either dimension.
[ ![Codeship Status for sys-git/spirol](https://codeship.com/projects/b8f6bef0-5132-0132-d6d9-0ea8256ccae9/status)](https://codeship.com/projects/48263)
[![Build Status](https://api.shippable.com/projects/54afbe1ad46935d5fbc1e904/badge?branchName=master)](https://app.shippable.com/projects/54afbe1ad46935d5fbc1e904/builds/latest)
* Version 1.0.3
### How do I get set up? ###
* **python setup.py install**
* Dependencies: **shifty (v0.0.3)**
* How to run tests: **./runtests.sh**
* Deployment instructions: **pip install spirol**
### What about test coverage? ###
There is a full suite of unit-tests.
### Contribution guidelines ###
I accept pull requests.
### Who do I talk to? ###
* Francis Horsman: **francis.horsman@gmail.com**
### Example ###
```
>>> from spirol import spirol
>>> a = spirol([[1,2,3], [4,5,6], [7,8,9]], (3, 3))
>>> a
spirol(3, 3, clockwise from tl)
>>> [i for i in a]
[1, 2, 3, 6, 9, 8, 7, 4, 5]
>>> print(a)
spirol(3, 3, clockwise from tl): [1, 2, 3, 6, 9, 8, 7, 4, 5]
>>> len(a)
9
>>> a = spirol([[1,2,3], [4,5,6], [7,8,9]], (3, 3), corner='br', direction='counterclock')
>>> a
spirol(3, 3, counterclock from br)
>>> [i for i in a]
[9, 6, 3, 2, 1, 4, 7, 8, 5]
```
.. :changelog:
Changelog
=========
1.0.7 2015-01-09
----------------
* fixed setup
1.0.6 2015-01-09
----------------
* Updated tagger to publish to pypi
1.0.5 2015-01-09
----------------
* updated tagger
1.0.4 2015-01-09
----------------
* updated tagger
1.0.3 2015-01-09
----------------
* Updated readme
1.0.2 2015-01-09
----------------
* Updated readme to pull in shippable status.
1.0.1 2015-01-09
----------------
* Added tox, versioneer
1.0.0 2014-11-19
----------------
* Production stable
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
spirol-1.0.7.tar.gz
(17.0 kB
view hashes)
Built Distribution
spirol-1.0.7-py2.7.egg
(20.0 kB
view hashes)