Skip to main content

A package for data manipulation, it has different functions e.g: encode/decode RLE, POLYGON manipulation, etc...

Project description

DATAWEAVE

A Python package for handling various data encoding and manipulation tasks, including run-length encoding (RLE), mask operations, and polygon manipulations.

Installation

Install the package using pip:

pip install dataweave

USAGE

Run-Length Encoding (RLE)

Use RLEHandler for encoding and decoding sequences of data using run-length encoding.

from dataweave import RLEHandler

# Example data
data = [0, 0, 1, 1, 1, 0, 0, 0, 1]

# Encode data using RLE
encoded = RLEHandler.encode(data)
print(encoded)  # Output: [(0, 2), (1, 3), (0, 3), (1, 1)]

# Decode the RLE encoded data
decoded = RLEHandler.decode(encoded)
print(decoded)  # Output: [0, 0, 1, 1, 1, 0, 0, 0, 1]

Mask Operations

Use MaskHandler for converting between mask data and RLE encoding.

from dataweave import MaskHandler

# Example mask data
mask_data = [[0, 0, 1], 
             [1, 1, 0], 
             [0, 0, 1]]

# Convert mask data to RLE
rle_encoded = MaskHandler.mask_to_rle(mask_data)
print(rle_encoded)
shape = (3, 3) # The shape of the mask data (height, width)
# Convert RLE back to mask data
decoded_mask = MaskHandler.rle_to_mask(rle_encoded, shape)
print(decoded_mask)

Polygon Operations

Use PolygonHandler for converting between polygon vertices and RLE encoding as well as masks.

from dataweave import PolygonHandler

# Example polygon data (list of vertices)
data = [(100, 100),  # Vertex 1
        (200, 150),  # Vertex 2
        (250, 300),  # Vertex 3
        (180, 400),  # Vertex 4
        (120, 350)]  # Vertex 5

polyhandler = PolygonHandler()

# Convert polygon vertices to RLE and bounding box
rle, bbox = polyhandler.polygon_to_rle(data)
print(rle)

# Convert RLE and bounding box back to polygon vertices
polygon = polyhandler.rle_to_polygon(rle, bbox)
print(polygon)

mask = polyhandler.polygon_to_mask(data, shape=(height, width), color=(255,255,255))
print(mask)

# Convert mask back to polygon vertices
polygon_from_mask = polyhandler.mask_to_polygon(mask)
print(polygon_from_mask)

License

This project is licensed under the MIT License - see the LICENSE file for details.

Additional Notes:

  • Ensure the package is named appropriately, in this case, dataweave.
  • If the package is to be published on PyPI, make sure to include all necessary files such as setup.py, LICENSE, and any other metadata files.
  • Adjust the package name and module imports according to your actual package structure.

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.

Authors

Tsilavo Tahina R.

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

dataweave-1.2.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dataweave-1.2.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file dataweave-1.2.0.tar.gz.

File metadata

  • Download URL: dataweave-1.2.0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for dataweave-1.2.0.tar.gz
Algorithm Hash digest
SHA256 427463e78d93951d9661b86e1f925936fe26ae487f012d90810d7afd10acd145
MD5 67e25441aa68f50825f8aaf17f140f52
BLAKE2b-256 b3b9d80805724f33906133c365c6531e5500efb376d354be755812fb75112461

See more details on using hashes here.

File details

Details for the file dataweave-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: dataweave-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for dataweave-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1a24e1013ee6c45333d41d5bd8acfa3d476ef021035b9fdfe402cf6e8062e38d
MD5 b218ba715f8abfdd14855c94240b60c7
BLAKE2b-256 6d1f16a684226355bb62b7ad8a90e80c77f2f3b27dd15a662ebc6b953afa5045

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