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 details)
Built Distribution
spirol-1.0.7-py2.7.egg
(20.0 kB
view details)
File details
Details for the file spirol-1.0.7.tar.gz
.
File metadata
- Download URL: spirol-1.0.7.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcb7494a7af60ff68548c79a0768342e3765127e0a3e3b97a8c2ae2950182db2 |
|
MD5 | d50f1d64bca694cdc5e69805509b7006 |
|
BLAKE2b-256 | fdaf87169186c8158447b4e0be5c16a7e9ca847404dedf41329338ce055d5c5d |
File details
Details for the file spirol-1.0.7-py2.7.egg
.
File metadata
- Download URL: spirol-1.0.7-py2.7.egg
- Upload date:
- Size: 20.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a1b97bf8a58649cb3f5b08717c42644e3734f46586d880072a1a9cef71421a3 |
|
MD5 | 4b6f2adb209d4f1cba41fe82bbd25c71 |
|
BLAKE2b-256 | 34f95bd4cdf4eb9865343bfa632243458076698761d98e183ba87ec990b69934 |