semvec/pypi-packages huggingface dataset:
pcsx2-memory-accessor 1.0
A Python API for reading & writing PCSX2's emulator memory, using the Pine IPC protocol.

# PCSX2 Memory Accessor

A Python API for reading & writing PCSX2\'s emulator memory, using the Pine IPC protocol.

## Installation
```
pip install pcsx2-memory-accessor
```

**Enable Pine IPC in PCSX2:**
   - Open PCSX2
   - Go to Settings
   - Under Advanced, scroll down to PINE Setting, check enable. Set the port to 28011
   - Restart PCSX2

## Quick Start

```python
import pcsx2_memory_accessor as p

# Initialize connection
if p.init():
    # Read a 32-bit integer
    health = p.read_u32(0x00100000)
    print(f"Health: {health}")
    
    # Write a 32-bit integer
    p.write_u32(0x00100000, 69)
    
    # Read multiple bytes (12 bytes in this case)
    data = p.read_pcsx2_memory(0x00200000, 12)

    # Write multiple bytes (9 bytes in this case)
    my_bytes = bytes([0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99])
    data = p.write_pcsx2_memory(0x00200000, my_bytes)

    # Write a binary file to PCSX2 Memory ---
    BIN_FILENAME = "memory_patch.bin"

    # Read data from the binary file in binary mode ('rb')
    with open(BIN_FILENAME, 'rb') as f:
        file_data = f.read()
    
    # Write the file data (byte array) directly to PCSX2 memory
    if file_data:
        TARGET_ADDRESS = 0x00300000
        p.write_pcsx2_memory(0x00300000, file_data)
    
    # Cleanup
    p.shutdown()
```

## API Reference
```python
# Read single values
health = pcsx2_memory_accessor.read_u8(address)   # Read 8-bit integer
score = pcsx2_memory_accessor.read_u16(address)   # Read 16-bit integer
value = pcsx2_memory_accessor.read_u32(address)   # Read 32-bit integer
big_num = pcsx2_memory_accessor.read_u64(address) # Read 64-bit integer

# Write single values
pcsx2_memory_accessor.write_u8(address, value)    # Write 8-bit integer
pcsx2_memory_accessor.write_u16(address, value)   # Write 16-bit integer
pcsx2_memory_accessor.write_u32(address, value)   # Write 32-bit integer
pcsx2_memory_accessor.write_u64(address, value)   # Write 64-bit integer

# Read multiple bytes (returns bytes object)
data = pcsx2_memory_accessor.read_pcsx2_memory(address, num_bytes)

# Write multiple bytes
pcsx2_memory_accessor.write_pcsx2_memory(address, data_bytes)
```

## Requirements

- Python 3.6+
- PCSX2 with Pine IPC support

## Credits

- Pine by GovanifY

## Links

- PCSX2: https://pcsx2.net/
- Pine:  https://github.com/GovanifY/pine
kfp 2.15.2
Kubeflow Pipelines SDK
Requires Python: >=3.9.0


Kubeflow Pipelines is a platform for building and deploying portable, scalable machine learning workflows based on Docker containers within the [Kubeflow](https://www.kubeflow.org/) project.

Use Kubeflow Pipelines to compose a multi-step workflow ([pipeline](https://www.kubeflow.org/docs/components/pipelines/concepts/pipeline/)) as a [graph](https://www.kubeflow.org/docs/components/pipelines/concepts/graph/) of containerized [tasks](https://www.kubeflow.org/docs/components/pipelines/concepts/step/) using Python code and/or YAML. Then, [run](https://www.kubeflow.org/docs/components/pipelines/concepts/run/) your pipeline with specified pipeline arguments, rerun your pipeline with new arguments or data, [schedule](https://www.kubeflow.org/docs/components/pipelines/concepts/run-trigger/) your pipeline to run on a recurring basis, organize your runs into [experiments](https://www.kubeflow.org/docs/components/pipelines/concepts/experiment/), save machine learning artifacts to compliant [artifact registries](https://www.kubeflow.org/docs/components/pipelines/concepts/metadata/), and visualize it all through the [Kubeflow Dashboard](https://www.kubeflow.org/docs/components/central-dash/overview/).

## Installation

To install `kfp`, run:

```sh
pip install kfp
```

## Getting started

The following is an example of a simple pipeline that uses the `kfp` v2 syntax:

```python
from kfp import dsl
import kfp


@dsl.component
def add(a: float, b: float) -> float:
    '''Calculates sum of two arguments'''
    return a + b


@dsl.pipeline(
    name='Addition pipeline',
    description='An example pipeline that performs addition calculations.')
def add_pipeline(
    a: float = 1.0,
    b: float = 7.0,
):
    first_add_task = add(a=a, b=4.0)
    second_add_task = add(a=first_add_task.output, b=b)


client = kfp.Client(host='<my-host-url>')
client.create_run_from_pipeline_func(
    add_pipeline, arguments={
        'a': 7.0,
        'b': 8.0
    })

```