Skip to main content

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

Project details


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)

Uploaded Source

Built Distribution

spirol-1.0.7-py2.7.egg (20.0 kB view details)

Uploaded Source

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

Hashes for spirol-1.0.7.tar.gz
Algorithm Hash digest
SHA256 bcb7494a7af60ff68548c79a0768342e3765127e0a3e3b97a8c2ae2950182db2
MD5 d50f1d64bca694cdc5e69805509b7006
BLAKE2b-256 fdaf87169186c8158447b4e0be5c16a7e9ca847404dedf41329338ce055d5c5d

See more details on using hashes here.

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

Hashes for spirol-1.0.7-py2.7.egg
Algorithm Hash digest
SHA256 5a1b97bf8a58649cb3f5b08717c42644e3734f46586d880072a1a9cef71421a3
MD5 4b6f2adb209d4f1cba41fe82bbd25c71
BLAKE2b-256 34f95bd4cdf4eb9865343bfa632243458076698761d98e183ba87ec990b69934

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page