Skip to content
55 changes: 39 additions & 16 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,61 @@ All notable changes to this project will be documented in this file.

## [1.3.4](https://github.com/NatLabRockies/plexosdb/compare/v1.3.3...v1.3.4) (2026-03-27)


### 🧩 CI

* use release/v1 tag for pypa/gh-action-pypi-publish ([#107](https://github.com/NatLabRockies/plexosdb/issues/107)) ([c4e58b8](https://github.com/NatLabRockies/plexosdb/commit/c4e58b8dc062f3302216b3caa7c9c6c1cc423c86))

- use release/v1 tag for pypa/gh-action-pypi-publish
([#107](https://github.com/NatLabRockies/plexosdb/issues/107))
([c4e58b8](https://github.com/NatLabRockies/plexosdb/commit/c4e58b8dc062f3302216b3caa7c9c6c1cc423c86))

### 📦 Build

* **deps:** bump actions/cache from 5.0.3 to 5.0.4 ([#115](https://github.com/NatLabRockies/plexosdb/issues/115)) ([1ff162a](https://github.com/NatLabRockies/plexosdb/commit/1ff162afe66dfe3bcad7d0dbb0a534b4a9d3374a))
* **deps:** bump astral-sh/setup-uv from 7.5.0 to 7.6.0 ([#117](https://github.com/NatLabRockies/plexosdb/issues/117)) ([13fb3cf](https://github.com/NatLabRockies/plexosdb/commit/13fb3cfb4c7a2affd7df504a2e152c9a2b0c1295))
* **deps:** bump astral-sh/setup-uv from b75dde52aef63a238519e7aecbbe79a4a52e4315 to e06108dd0aef18192324c70427afc47652e63a82 ([#114](https://github.com/NatLabRockies/plexosdb/issues/114)) ([96f3975](https://github.com/NatLabRockies/plexosdb/commit/96f397540b06e68e45075a5d700d2b0a91ebe112))
* **deps:** bump codecov/codecov-action from 5.5.2 to 5.5.3 ([#116](https://github.com/NatLabRockies/plexosdb/issues/116)) ([c86c8e2](https://github.com/NatLabRockies/plexosdb/commit/c86c8e254a85909043c8a7b25a10ff7d169d1e02))
* **deps:** bump googleapis/release-please-action from c3fc4de07084f75a2b61a5b933069bda6edf3d5c to 16a9c90856f42705d54a6fda1823352bdc62cf38 ([#112](https://github.com/NatLabRockies/plexosdb/issues/112)) ([4150d56](https://github.com/NatLabRockies/plexosdb/commit/4150d56065f41cf916912daf9cda39281cf4e3df))
* **deps:** bump peaceiris/actions-gh-pages from e9c66a37f080288a11235e32cbe2dc5fb3a679cc to 4f9cc6602d3f66b9c108549d475ec49e8ef4d45e ([#113](https://github.com/NatLabRockies/plexosdb/issues/113)) ([c697f1d](https://github.com/NatLabRockies/plexosdb/commit/c697f1d7642dac4c16cd5ea9e11e327d684ff548))
- **deps:** bump actions/cache from 5.0.3 to 5.0.4
([#115](https://github.com/NatLabRockies/plexosdb/issues/115))
([1ff162a](https://github.com/NatLabRockies/plexosdb/commit/1ff162afe66dfe3bcad7d0dbb0a534b4a9d3374a))
- **deps:** bump astral-sh/setup-uv from 7.5.0 to 7.6.0
([#117](https://github.com/NatLabRockies/plexosdb/issues/117))
([13fb3cf](https://github.com/NatLabRockies/plexosdb/commit/13fb3cfb4c7a2affd7df504a2e152c9a2b0c1295))
- **deps:** bump astral-sh/setup-uv from
b75dde52aef63a238519e7aecbbe79a4a52e4315 to
e06108dd0aef18192324c70427afc47652e63a82
([#114](https://github.com/NatLabRockies/plexosdb/issues/114))
([96f3975](https://github.com/NatLabRockies/plexosdb/commit/96f397540b06e68e45075a5d700d2b0a91ebe112))
- **deps:** bump codecov/codecov-action from 5.5.2 to 5.5.3
([#116](https://github.com/NatLabRockies/plexosdb/issues/116))
([c86c8e2](https://github.com/NatLabRockies/plexosdb/commit/c86c8e254a85909043c8a7b25a10ff7d169d1e02))
- **deps:** bump googleapis/release-please-action from
c3fc4de07084f75a2b61a5b933069bda6edf3d5c to
16a9c90856f42705d54a6fda1823352bdc62cf38
([#112](https://github.com/NatLabRockies/plexosdb/issues/112))
([4150d56](https://github.com/NatLabRockies/plexosdb/commit/4150d56065f41cf916912daf9cda39281cf4e3df))
- **deps:** bump peaceiris/actions-gh-pages from
e9c66a37f080288a11235e32cbe2dc5fb3a679cc to
4f9cc6602d3f66b9c108549d475ec49e8ef4d45e
([#113](https://github.com/NatLabRockies/plexosdb/issues/113))
([c697f1d](https://github.com/NatLabRockies/plexosdb/commit/c697f1d7642dac4c16cd5ea9e11e327d684ff548))

## [1.3.3](https://github.com/NatLabRockies/plexosdb/compare/v1.3.2...v1.3.3) (2026-03-16)


### 🐛 Bug Fixes

* **ci:** harden all workflows per zizmor audit ([#105](https://github.com/NatLabRockies/plexosdb/issues/105)) ([67ca845](https://github.com/NatLabRockies/plexosdb/commit/67ca84584d1e66410dc66b014a9b710a24b00b95))

- **ci:** harden all workflows per zizmor audit
([#105](https://github.com/NatLabRockies/plexosdb/issues/105))
([67ca845](https://github.com/NatLabRockies/plexosdb/commit/67ca84584d1e66410dc66b014a9b710a24b00b95))

### ⚡ Performance

* Improving performance of adding memberships from records ([#104](https://github.com/NatLabRockies/plexosdb/issues/104)) ([1ea4a39](https://github.com/NatLabRockies/plexosdb/commit/1ea4a39612a1bef1a0f290eaeb40441874a2b8f0))

- Improving performance of adding memberships from records
([#104](https://github.com/NatLabRockies/plexosdb/issues/104))
([1ea4a39](https://github.com/NatLabRockies/plexosdb/commit/1ea4a39612a1bef1a0f290eaeb40441874a2b8f0))

### 📦 Build

* **deps:** bump actions/download-artifact from 7 to 8 ([#101](https://github.com/NatLabRockies/plexosdb/issues/101)) ([0e572a0](https://github.com/NatLabRockies/plexosdb/commit/0e572a07a930f6e25f196e98fc879f65f7dd9daa))
* **deps:** bump actions/upload-artifact from 6 to 7 ([#102](https://github.com/NatLabRockies/plexosdb/issues/102)) ([22b8374](https://github.com/NatLabRockies/plexosdb/commit/22b8374aa7ed9d29eb36258a6a5ad16feb2e21c5))
- **deps:** bump actions/download-artifact from 7 to 8
([#101](https://github.com/NatLabRockies/plexosdb/issues/101))
([0e572a0](https://github.com/NatLabRockies/plexosdb/commit/0e572a07a930f6e25f196e98fc879f65f7dd9daa))
- **deps:** bump actions/upload-artifact from 6 to 7
([#102](https://github.com/NatLabRockies/plexosdb/issues/102))
([22b8374](https://github.com/NatLabRockies/plexosdb/commit/22b8374aa7ed9d29eb36258a6a5ad16feb2e21c5))

## [1.3.2](https://github.com/NatLabRockies/plexosdb/compare/v1.3.1...v1.3.2) (2026-02-12)

Expand Down
2 changes: 1 addition & 1 deletion docs/source/howtos/add_attributes.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Adding Attributes to the objects

Objects in PlexosDB can have attributes that are saved on the `t_attribute_data`
table.
table and represent static metadata (e.g. "Step Type", "Chrono Step Count").

## Listing available attributes per `ClassEnum`

Expand Down
21 changes: 21 additions & 0 deletions docs/source/howtos/bulk_operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,3 +227,24 @@ your model:

This approach can dramatically improve performance when creating large, complex
models.

## Bulk Inserting Attributes

For efficiently adding multiple attribute values, use
`add_attributes_from_records`.

### Basic Usage (Wide Format)

```python
from plexosdb.enums import ClassEnum

records = [
{"name": "Horizon1", "Step Type": 4.0, "Chrono Step Count": 366.0},
{"name": "Horizon2", "Step Type": 4.0, "Chrono Step Count": 365.0},
]

db.add_attributes_from_records(
records,
object_class=ClassEnum.Horizon,
)
```
22 changes: 15 additions & 7 deletions docs/source/howtos/copy_objects.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Copying Objects

PlexosDB allows you to create copies of existing objects along with their
properties, memberships, and related property records.
properties, memberships, attributes and related property records.

## Basic Object Copying

Copy an object and all its properties:
Copy an object and all its memberships, properties and attributes:

```python
from plexosdb import PlexosDB
Expand All @@ -32,20 +32,26 @@ db.add_property(
scenario="Base Case"
)

# Copy a generator with all its properties
# Copy a generator with its memberships, properties and attributes
new_object_id = db.copy_object(
object_class=ClassEnum.Generator,
original_object_name="Generator1",
new_object_name="Generator1_Copy",
copy_properties=True # Default is True
copy_properties=True, # Default is True
copy_attributes=True # Default is True
)

print(f"Created new object with ID: {new_object_id}")
```

```{note}
Object-level attributes (stored in `t_attribute_data`) are also copied when using `copy_object`.
```

## Copying Objects Without Properties

You can also copy the object and its memberships without copying properties:
You can also copy only the object and its memberships by disabling property and
attribute copying:

```python
# Add Generator object
Expand All @@ -65,7 +71,8 @@ new_object_id = db.copy_object(
object_class=ClassEnum.Generator,
original_object_name="Generator1",
new_object_name="Generator1_Skeleton",
copy_properties=False
copy_properties=False,
copy_attributes=False
)
```

Expand Down Expand Up @@ -93,7 +100,8 @@ new_object_id = db.copy_object(
object_class=ClassEnum.Node,
original_object_name="Node1",
new_object_name="Node1_Copy",
copy_properties=False
copy_properties=False,
copy_attributes=False
)

# Check the memberships of the new object
Expand Down
Loading
Loading