Skip to main content

Python bindings for hwpers - A library for reading and writing Korean Hangul Word Processor (HWP) files

Project description

hwpers

Python bindings for hwpers - A Rust library for reading and writing Korean Hangul Word Processor (HWP) files.

Installation

Install from PyPI:

pip install hwpers

From source

For development or to get the latest version:

git clone https://github.com/Indosaram/hwpers-py
cd hwpers-py
pip install maturin
maturin develop

Quick Start

Reading HWP files

Load an HWP document and extract its contents. The HwpDocument class provides methods to access text, metadata, and document properties.

import hwpers

# Read from file path
doc = hwpers.read_file("document.hwp")

# Extract all text content
text = doc.extract_text()
print(text)

# Access document metadata
print(f"Title: {doc.get_title()}")
print(f"Author: {doc.get_author()}")
print(f"Pages: {doc.get_page_count()}")
print(f"Characters: {doc.get_character_count()}")
print(f"Sections: {doc.section_count()}")
print(f"Compressed: {doc.is_compressed()}")

# You can also read from bytes (useful for web applications or streams)
with open("document.hwp", "rb") as f:
    doc = hwpers.read_bytes(f.read())

Writing HWP files

Create new HWP documents using HwpWriter. Add content like paragraphs, headings, and lists, then save to a file.

import hwpers

writer = hwpers.HwpWriter()

# Set document metadata (appears in file properties)
writer.set_title("My Document")
writer.set_author("Author Name")
writer.set_subject("Subject")
writer.set_keywords("keyword1, keyword2")

# Add content to the document
writer.add_heading("Chapter 1", 1)  # Level 1 heading
writer.add_paragraph("This is a paragraph.")
writer.add_bullet_list(["Item 1", "Item 2", "Item 3"])
writer.add_numbered_list(["First", "Second", "Third"])

# Save to file
writer.save("output.hwp")

# Or get document as bytes (useful for web responses)
data = writer.to_bytes()

Text Styling

Basic Styles

Use TextStyle to apply formatting like bold, italic, colors, and fonts. Methods can be chained for convenience.

import hwpers

writer = hwpers.HwpWriter()

# Create a style with multiple formatting options
# Method chaining makes it easy to combine styles
style = (hwpers.TextStyle()
    .bold()                       # Bold text
    .italic()                     # Italic text
    .underline()                  # Underlined text
    .strikethrough()              # Strikethrough text
    .size(14)                     # Font size in points
    .color(0xFF0000)              # Text color (RGB hex: red)
    .background_color(0xFFFF00)   # Highlight color (RGB hex: yellow)
    .font_name("맑은 고딕"))       # Font family name

writer.add_paragraph_with_style("Styled text", style)
writer.save("styled.hwp")

Mixed Styles in One Paragraph

Combine multiple styles within a single paragraph using StyledText. Each segment can have its own formatting.

import hwpers

writer = hwpers.HwpWriter()

# Create text segments with different styles
texts = [
    hwpers.StyledText("Normal ", hwpers.TextStyle()),
    hwpers.StyledText("Bold ", hwpers.TextStyle().bold()),
    hwpers.StyledText("Red", hwpers.TextStyle().color(0xFF0000)),
]

# Add all segments as one paragraph
writer.add_styled_paragraph(texts)
writer.save("mixed_styles.hwp")

Paragraph Alignment

Control text alignment within paragraphs. Options include left, center, right, justify, and distribute.

import hwpers

writer = hwpers.HwpWriter()

# Different alignment options
writer.add_aligned_paragraph("Left aligned", hwpers.ParagraphAlignment.Left)
writer.add_aligned_paragraph("Center aligned", hwpers.ParagraphAlignment.Center)
writer.add_aligned_paragraph("Right aligned", hwpers.ParagraphAlignment.Right)
writer.add_aligned_paragraph("Justified text spreads across the line", hwpers.ParagraphAlignment.Justify)

writer.save("aligned.hwp")

Tables

Simple Table

Create tables from 2D lists. The first row is typically used as headers.

import hwpers

writer = hwpers.HwpWriter()

# Create a table from a 2D list
# First row becomes the header
writer.add_table([
    ["Name", "Age", "City"],      # Header row
    ["Alice", "30", "Seoul"],     # Data rows
    ["Bob", "25", "Busan"],
])

writer.save("table.hwp")

TableBuilder (Advanced)

For complex tables with cell merging and custom borders, use TableBuilder. It provides a fluent API for precise control.

import hwpers

writer = hwpers.HwpWriter()

# Create a 4-row, 3-column table
tb = hwpers.TableBuilder(4, 3)

# Set the header row (row 0)
tb.set_header_row(["Column A", "Column B", "Column C"])

# Set individual cells (row, col, text)
# Method chaining allows setting multiple cells in one line
tb.set_cell(1, 0, "Row 1").set_cell(1, 1, "Data").set_cell(1, 2, "More")
tb.set_cell(2, 0, "Row 2").set_cell(2, 1, "Data").set_cell(2, 2, "More")
tb.set_cell(3, 0, "Row 3").set_cell(3, 1, "Data").set_cell(3, 2, "More")

# Merge cells horizontally: merge row 3, columns 0 through 1
tb.merge_cells(3, 0, 1)

# Apply border styles
tb.set_all_borders(hwpers.CellBorderStyle())  # Add borders to all cells
# Or remove all borders: tb.no_borders()

writer.add_table_with_builder(tb)
writer.save("advanced_table.hwp")

Page Layout

Paper Size and Orientation

Configure page dimensions and orientation. Use presets or custom sizes.

import hwpers

writer = hwpers.HwpWriter()

# Quick presets for common layouts
writer.set_a4_portrait()       # A4 size, vertical
writer.set_a4_landscape()      # A4 size, horizontal
writer.set_letter_portrait()   # US Letter, vertical
writer.set_letter_landscape()  # US Letter, horizontal

# Using PageLayout for more control
layout = hwpers.PageLayout.a4_portrait()
writer.set_page_layout(layout)

# Set paper size and orientation separately
writer.set_paper_size(hwpers.PaperSize.A3)
writer.set_page_orientation(hwpers.PageOrientation.Landscape)

# Custom page size in millimeters (width, height)
writer.set_custom_page_size_mm(200.0, 300.0)

writer.save("layout.hwp")

Margins

Set page margins using presets or custom values in millimeters/inches.

import hwpers

writer = hwpers.HwpWriter()

# Margin presets
writer.set_normal_margins()  # Standard margins
writer.set_narrow_margins()  # Reduced margins for more content
writer.set_wide_margins()    # Larger margins for binding

# Custom margins in millimeters (top, bottom, left, right)
writer.set_page_margins_mm(25.0, 25.0, 30.0, 30.0)

# Custom margins in inches
writer.set_page_margins_inches(1.0, 1.0, 1.25, 1.25)

# Combine layout and margins
layout = hwpers.PageLayout.a4_portrait().with_margins(hwpers.PageMargins.narrow())
writer.set_page_layout(layout)

writer.save("margins.hwp")

Hyperlinks

Add clickable links to URLs, email addresses, files, or bookmarks within the document.

import hwpers

writer = hwpers.HwpWriter()

# Basic URL hyperlink (text, URL)
writer.add_hyperlink("Visit Google", "https://google.com")

# Email link - opens default email client
writer.add_email_link("Contact Us", "info@example.com")

# File link - opens local file
writer.add_file_link("Open Document", "/path/to/file.hwp")

# Bookmark link - jumps to a location within the document
writer.add_bookmark_link("Go to Section", "section1")

# Using Hyperlink class for more options
link = hwpers.Hyperlink.url("Visit Site", "https://example.com")
writer.add_hyperlink_with_options(link)

# Embed hyperlinks within paragraph text
# Useful when only part of the text should be clickable
text = "Visit our website for more information."
ranges = [
    # Link "website" (characters 10-17) to URL
    hwpers.TextRange(10, 17, "https://example.com"),
]
writer.add_paragraph_with_hyperlinks(text, ranges)

writer.save("links.hwp")

Images

Insert images from files or bytes. Control size and alignment.

import hwpers

writer = hwpers.HwpWriter()

# Simple image insertion (uses original size)
writer.add_image("photo.jpg")

# Image with custom size and alignment
options = hwpers.ImageOptions()
options.width = 200   # Width in pixels
options.height = 150  # Height in pixels
options.alignment = hwpers.ImageAlign.Center  # Left, Center, Right, InlineWithText
writer.add_image_with_options("photo.jpg", options)

# Insert image from bytes (useful for generated images or downloads)
with open("photo.png", "rb") as f:
    image_data = f.read()
    writer.add_image_from_bytes(image_data, hwpers.ImageFormat.Png)

writer.save("images.hwp")

Text Boxes

Create positioned text boxes with optional borders and backgrounds.

import hwpers

writer = hwpers.HwpWriter()

# Simple inline text box
writer.add_text_box("Text in a box")

# Positioned text box at specific coordinates
# Parameters: text, x, y, width, height (in HWP units)
# Use hwpers.mm_to_hwp_units() to convert from millimeters
writer.add_text_box_at_position("Positioned box", 1000, 2000, 5000, 3000)

# Text box with styled text inside
style = hwpers.TextStyle().bold().color(0x0000FF)
writer.add_styled_text_box("Blue bold text", style)

# Fully customized text box with border and background
box_style = hwpers.CustomTextBoxStyle(
    alignment=hwpers.TextBoxAlignment.Center,     # Text alignment inside box
    border_style=hwpers.TextBoxBorderStyle.Solid, # Border: None_, Solid, Dashed, Dotted, Double
    border_color=0x000000,                        # Border color (black)
    background_color=0xEEEEEE                     # Background color (light gray)
)
writer.add_custom_text_box("Custom box", 1000, 1000, 5000, 2000, box_style)

writer.save("textboxes.hwp")

Headers, Footers, and Page Numbers

Add headers and footers that appear on every page (or specific pages).

import hwpers

writer = hwpers.HwpWriter()

# Simple header and footer (appears on all pages, left-aligned)
writer.add_header("Document Title")
writer.add_footer("Page Footer")

# Header/footer with options
writer.add_header_with_options(
    "Header Text",
    hwpers.PageApplyType.All,            # All, FirstPage, OddPages, EvenPages
    hwpers.HeaderFooterAlignment.Center  # Left, Center, Right
)

writer.add_footer_with_options(
    "Footer Text",
    hwpers.PageApplyType.All,
    hwpers.HeaderFooterAlignment.Right
)

# Automatic page numbers in header or footer
writer.add_header_with_page_number()
writer.add_footer_with_page_number()

# Configure page numbering format
# Parameters: start_page, format
writer.set_page_numbering(1, hwpers.PageNumberFormat.Numeric)      # 1, 2, 3...
writer.set_page_numbering(1, hwpers.PageNumberFormat.RomanUpper)   # I, II, III...
writer.set_page_numbering(1, hwpers.PageNumberFormat.RomanLower)   # i, ii, iii...
writer.set_page_numbering(1, hwpers.PageNumberFormat.AlphaUpper)   # A, B, C...
writer.set_page_numbering(1, hwpers.PageNumberFormat.AlphaLower)   # a, b, c...

writer.save("headers_footers.hwp")

Lists

Create bulleted, numbered, and nested lists.

import hwpers

writer = hwpers.HwpWriter()

# Simple bullet list
writer.add_bullet_list(["Apple", "Banana", "Cherry"])

# Simple numbered list
writer.add_numbered_list(["First", "Second", "Third"])

# Lists with different styles
writer.add_list(["A", "B", "C"], hwpers.ListType.Alphabetic)  # A. B. C.
writer.add_list(["I", "II", "III"], hwpers.ListType.Roman)    # I. II. III.
writer.add_list(["가", "나", "다"], hwpers.ListType.Korean)   # Korean numbering

# Nested lists (lists within lists)
writer.start_list(hwpers.ListType.Numbered)
writer.add_list_item("Item 1")

# Start a nested bullet list inside the numbered list
writer.start_nested_list(hwpers.ListType.Bullet)
writer.add_list_item("Sub-item A")
writer.add_list_item("Sub-item B")
writer.end_list()  # End nested list

writer.add_list_item("Item 2")
writer.end_list()  # End outer list

writer.save("lists.hwp")

Other Features

Multi-column Layout

Create newspaper-style multi-column layouts.

import hwpers

writer = hwpers.HwpWriter()

# Set 2-column layout
writer.set_columns(2)

# Add content - it will flow across columns
writer.add_paragraph("This text will appear in a two-column layout...")

writer.save("columns.hwp")

Page Background Color

Set a background color for all pages.

import hwpers

writer = hwpers.HwpWriter()

# Set page background color (RGB hex)
writer.set_page_background_color(0xFFFAF0)  # Light beige/cream color

writer.add_paragraph("Content on colored background")
writer.save("background.hwp")

Update Statistics

Recalculate document statistics like page count and character count.

import hwpers

writer = hwpers.HwpWriter()

# Add content...
writer.add_paragraph("Some content here")

# Update statistics before saving
# This ensures accurate page/character counts in document properties
writer.update_statistics()

writer.save("document.hwp")

Unit Conversions

HWP files use internal units for measurements. Use these functions to convert between common units and HWP units.

  • 1 inch = 7200 HWP units
  • 1 mm = 283.465 HWP units
import hwpers

# Convert millimeters to HWP units
hwp_units = hwpers.mm_to_hwp_units(10.0)  # Returns ~2835

# Convert HWP units back to millimeters
mm = hwpers.hwp_units_to_mm(2835)  # Returns ~10.0

# Convert inches to HWP units
hwp_units = hwpers.inches_to_hwp_units(1.0)  # Returns 7200

# Convert HWP units back to inches
inches = hwpers.hwp_units_to_inches(7200)  # Returns 1.0

# Example: Create a text box with size in millimeters
x = hwpers.mm_to_hwp_units(20)       # 20mm from left
y = hwpers.mm_to_hwp_units(30)       # 30mm from top
width = hwpers.mm_to_hwp_units(50)   # 50mm wide
height = hwpers.mm_to_hwp_units(25)  # 25mm tall

writer = hwpers.HwpWriter()
writer.add_text_box_at_position("Positioned in mm", x, y, width, height)
writer.save("units_example.hwp")

API Reference

Core Classes

Class Description
HwpDocument Read and parse HWP files
HwpWriter Create and write HWP files
TableBuilder Build tables with fluent API

Style Classes

Class Description
TextStyle Text formatting (bold, italic, color, size, font)
StyledText Text with associated style
PageLayout Page size and orientation
PageMargins Page margin presets (normal, narrow, wide)
Hyperlink Hyperlink configuration
TextRange Text range for inline hyperlinks
ImageOptions Image size and alignment
CustomTextBoxStyle Text box styling
CellBorderStyle Table cell border styling

Enums

Enum Values
ParagraphAlignment Left, Center, Right, Justify, Distribute
ListType Bullet, Numbered, Alphabetic, Roman, Korean
PageOrientation Portrait, Landscape
PaperSize A3, A4, A5, B4, B5, Letter, Legal, Tabloid, Custom
PageNumberFormat Numeric, AlphaUpper, AlphaLower, RomanUpper, RomanLower
ImageFormat Jpeg, Png, Bmp, Gif
ImageAlign Left, Center, Right, InlineWithText
PageApplyType All, FirstPage, OddPages, EvenPages
HeaderFooterAlignment Left, Center, Right
TextBoxAlignment Left, Center, Right, Inline, Absolute
TextBoxBorderStyle None_, Solid, Dashed, Dotted, Double
BorderLineType None_, Solid, Dashed, Dotted, Double, Thick

Functions

Function Description
read_file(path) Read HWP document from file path
read_bytes(data) Read HWP document from bytes
mm_to_hwp_units(mm) Convert millimeters to HWP units
hwp_units_to_mm(units) Convert HWP units to millimeters
inches_to_hwp_units(inches) Convert inches to HWP units
hwp_units_to_inches(units) Convert HWP units to inches

Documentation

Full API documentation: https://indosaram.github.io/hwpers-py/

License

MIT or Apache-2.0

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

hwpers-0.4.0.tar.gz (36.7 kB view details)

Uploaded Source

Built Distributions

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

hwpers-0.4.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (746.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

hwpers-0.4.0-cp314-cp314-win_amd64.whl (637.1 kB view details)

Uploaded CPython 3.14Windows x86-64

hwpers-0.4.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (751.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

hwpers-0.4.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (747.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

hwpers-0.4.0-cp314-cp314-macosx_11_0_arm64.whl (720.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

hwpers-0.4.0-cp314-cp314-macosx_10_12_x86_64.whl (743.1 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

hwpers-0.4.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (752.2 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

hwpers-0.4.0-cp313-cp313-win_amd64.whl (626.9 kB view details)

Uploaded CPython 3.13Windows x86-64

hwpers-0.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (746.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

hwpers-0.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (741.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

hwpers-0.4.0-cp313-cp313-macosx_11_0_arm64.whl (715.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

hwpers-0.4.0-cp313-cp313-macosx_10_12_x86_64.whl (739.2 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

hwpers-0.4.0-cp312-cp312-win_amd64.whl (627.1 kB view details)

Uploaded CPython 3.12Windows x86-64

hwpers-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (747.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

hwpers-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (742.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

hwpers-0.4.0-cp312-cp312-macosx_11_0_arm64.whl (715.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

hwpers-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl (739.3 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

File details

Details for the file hwpers-0.4.0.tar.gz.

File metadata

  • Download URL: hwpers-0.4.0.tar.gz
  • Upload date:
  • Size: 36.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hwpers-0.4.0.tar.gz
Algorithm Hash digest
SHA256 60f4fef3f06fb5a7e46b0c69bd8f5e92fc903cfb3818bd4e1fa9d369b08f84fa
MD5 f17c794def5f229be5ca292be72bfcd3
BLAKE2b-256 28b7f3d20c3d8c6e7d569c592e93455a4504d5ba8d137a5c32a25242033bd0fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0.tar.gz:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e2e4ad6d1345d49556f1008050f698cce5f3171aa19e297eb8a9a2665eeb975a
MD5 04c4dd4e6554663432717bade41ec4b9
BLAKE2b-256 69af41ef7dd5e36c5f72e2bcd5ac8923400a35da9b4b3cff49c1b6b952436522

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: hwpers-0.4.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 637.1 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hwpers-0.4.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 cdc8a2ee9bf18345bf2c6074ffb52847be82379c90cad70b341ef322efd8687f
MD5 0b4cc95a6e03078dd2177ebefb2cfcdc
BLAKE2b-256 4962f1770e8dee8250fd4558f242370f69bd094c768f6685ef335d7ecab06874

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp314-cp314-win_amd64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3c3748638d7abb259d5e3abf628671fec4fc3154ba9563bdb82ce4f440162a5b
MD5 c04da49557d6e2f4424d2b08e1706032
BLAKE2b-256 b6746a87ddb9899feb7d14de95664ecbda7f927bb40bf2d72d2339133883cd13

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a4ec1e5550d9bfd665df6af15260c5091e431cd99c82b6428ddfac03539eae27
MD5 5dd0f6af4ae3e1a0c33a42b63b1d6bf3
BLAKE2b-256 0d57261dd9689a4d73bb032544d8c174f29a9ba4a76c745250a958fd25098585

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 778fc70dc3dc024c62268458599f80195def709c6cea5c50153f707c382b6fe7
MD5 f66ecdf55e95a4574a96410e93426f4d
BLAKE2b-256 7ee6d1aeda9c2f0fd4eca10b0f4768b7d3f5513d06a4f3444a21a2c4d1021304

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1be517854779190b51027ca24ea4e9f450a3d4b96c259728f6051af7b6b6416f
MD5 f7138c2eb4341feb629d3bca5de9a433
BLAKE2b-256 42dac17d76475076e6f40237289fc8c9535df9c6581020d15fda87945207e404

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9dadd0ef2af65a8e8ecd40de1001698bb3d64ba6e8506bd0a9ed973771bf4e92
MD5 3fbfc658d386240323b955c7a4490c51
BLAKE2b-256 b972d89cb6ad76dfd23911572a509e37904c30d2591ead2cef8f21db2a4eac69

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: hwpers-0.4.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 626.9 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hwpers-0.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 54ce318734f8ede99c39b7599284cd09d980266a5cba7fbb511c947e93133037
MD5 7b9401e3fcb8500e7de5db1ceddc51d0
BLAKE2b-256 bca7645570e84fef408e72bb04c4540ac42906c49c670eb1cce58bfdb8c3421c

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f39744557016785113b80a8463066935183b383ce1a58ab8287e90431ad1331
MD5 4f50ca468b9a6a9752ab8e6e9e5a7948
BLAKE2b-256 91d9909aa9100180b0b0aecf72fb0df971e678e21179aa5f4a217f668cb8951c

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cee37b10788aa8525bbe8c0bedfad56e6708a6089d02d9ec0a48fbb4f92ca298
MD5 a6712a1872d1a2a40550ef35cbafc995
BLAKE2b-256 524953b7ca9f8e8e919b3612ff084a94307e5969920c05581a17c8a23b8cffd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cde1d1e499665ddcb95c5459db6c4845c02f59122bbe3de8c65e3c78ce5b17f3
MD5 89fcb05cf38c25f070e8e79a76d1634b
BLAKE2b-256 69ab7b85df2c6375cf911904ac1e56dedc45af52292ce4fa3ab355c83b8ac8ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1f6ec56a94eab862db5521e4860e52339efd4fdda9abb85b41bacdc3c89b34f1
MD5 672685e7a7a16b3c9049a5ac281671d7
BLAKE2b-256 e9a4ce856b5f4fe53b32d3208aa835c7e53819022a25c4baeb54ae28b8c9ac84

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: hwpers-0.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 627.1 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hwpers-0.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 03f71175bf7db44cc79fc9928540683a9671b809fb1a6dbe7665c8770c2afeb8
MD5 83538f377b47ef0a5b016dac133f6b8e
BLAKE2b-256 d01a7f2d84b7913f5b8d9b0ebd58aaaed18a328d27f42008dc914fb42a55f529

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f3741220ff430293439ccc17636bf4d8529c5a2b40715bb6b8b0d66bc8a7822f
MD5 fefe1276741dfe2f23ca29cebd9dad20
BLAKE2b-256 93fd7665aad69d9c5af9175559d218040068f3abe3e5c9321e983f3d9d5bca55

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fe1ae2917595b2963375103aefdd22e610ac61797439bae4e0ac00f829412ef6
MD5 45d89091b20eaf833ebbf1914446baed
BLAKE2b-256 fbc304a4b15df280b501d22af86a5d3a2506ead1111dba8cca4d2e329e2cb447

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e63e11e008cf53344e11476073599ede531e3fcefedc8f91df9f77e3f1134026
MD5 85516adbb1e86a0a9995f5f8cac6b3bb
BLAKE2b-256 23525ecad6f40258575f0aec26ff3547f1be3d6b9eea8cbc84e8f29fbbecc18f

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwpers-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for hwpers-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 acc381ce1d1aaa2087659e35493f03ebae6474837f4f012aa36e6b928338fb5c
MD5 eaa2cd1db94af51c36e0baf16cf40796
BLAKE2b-256 170de06b5dc92f0879914520694b18ef8195f8fe182974aa439f1cff5ea2ce31

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwpers-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on Indosaram/hwpers-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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