Skip to main content

A Python implementation of the Rope data structure

Project description

Early implementation of a Rope data structure in Python.

About ropes

Ropes are an mutable alternative to strings. The string is represented as a binary tree, and modifications to the string are achieved by either replacing existing substring branches or by inserting new substrings into the tree structure.

This is a preliminary version which supports the basic operations, such as concatentation, indexing, slices, and strides.

Implementation of some features is currently poor, particularly the slicing operations. No effort is made to balance the tree or otherwise optimise the data structure.

Usage

To convert a string into a rope, use the Rope class constructor.

r = Rope('abcdefg')

A pre-defined Rope tree can be constructed using a list of strings.

r = Rope(['abc', 'def', 'g'])

Printing the rope returns a string.

>>> r = Rope(['abc', 'defg'])
>>> r
(Rope('abcd') + Rope('efg'))
>>> print(r)
abcdefg

Strings can be inserted between existing ropes.

>>> r, s = Rope('abc'), Rope('def')
>>> u = '123'
>>> r + u + s
((Rope('abc') + Rope('123')) + Rope('def'))
>>> print(r + u + s)
abc123def
>>>

Current usage is very basic, but will hopefully improve in the future.

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ropes-0.1.tar.gz (5.0 kB view details)

Uploaded Source

File details

Details for the file ropes-0.1.tar.gz.

File metadata

  • Download URL: ropes-0.1.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ropes-0.1.tar.gz
Algorithm Hash digest
SHA256 f0bbc3a75d24b6a8048967bf2468d6577c2878d9257822e6a6df7ba5379f1670
MD5 5d0688e6cff93915f135cd65fec49c8e
BLAKE2b-256 26ff4cdd9ff5950e07de6c60a03fec52c583f72a10c4967a79fa07d859faeb9e

See more details on using hashes here.

Supported by

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