Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-golang-macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@ jobs:

# - uses: ./.github/workflows/platform-integration-test.yaml
# with:
# wheel: dist/otdf_python-0.2.7-py3-none-any.whl
# wheel: dist/otdf_python-0.2.8-py3-none-any.whl
6 changes: 3 additions & 3 deletions .github/workflows/build-golang-ubuntu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@ jobs:

- uses: actions/cache/restore@v4
with:
path: dist/otdf_python-0.2.7-py3-none-any.whl
path: dist/otdf_python-0.2.8-py3-none-any.whl
key: ${{ runner.os }}${{ matrix.python3_version }}-data-${{ github.sha }}

- uses: actions/cache/save@v4
with:
path: dist/otdf_python-0.2.7-py3-none-any.whl
path: dist/otdf_python-0.2.8-py3-none-any.whl
key: ${{ runner.os }}${{ matrix.python3_version }}-data-${{ github.sha }}
restore-keys: |
${{ runner.os }}${{ matrix.python3_version }}-data-
Expand All @@ -61,5 +61,5 @@ jobs:
needs: build
uses: ./.github/workflows/platform-integration-test.yaml
with:
wheel: dist/otdf_python-0.2.7-py3-none-any.whl
wheel: dist/otdf_python-0.2.8-py3-none-any.whl
python_version: ${{ matrix.python3_version }}
2 changes: 1 addition & 1 deletion .github/workflows/platform-integration-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:

- uses: actions/cache/restore@v4
with:
path: dist/otdf_python-0.2.7-py3-none-any.whl
path: dist/otdf_python-0.2.8-py3-none-any.whl
key: ${{ runner.os }}${{ inputs.python_version }}-data-${{ github.sha }}

- name: Prove that the input file is available
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ Install from the [Python Package Index (PyPI)](https://pypi.org):
pip install otdf_python

# Install a pinned version
pip install otdf-python==0.2.7
pip install otdf-python==0.2.8

# Install a pinned version, from test.pypi.org
pip install -i https://test.pypi.org/simple/ otdf-python==0.2.7
pip install -i https://test.pypi.org/simple/ otdf-python==0.2.8
```

## Usage
Expand Down
2 changes: 1 addition & 1 deletion build-scripts/ci-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,4 @@ echo "✨✨✨ Build wheel"
poetry run python3 setup.py bdist_wheel

echo "✨✨✨ Install wheel"
pip install dist/otdf_python-0.2.7-py3-none-any.whl
pip install dist/otdf_python-0.2.8-py3-none-any.whl
2 changes: 1 addition & 1 deletion build-scripts/make_and_validate_script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ python3 -m pip install --upgrade setuptools wheel
python3 setup.py bdist_wheel

# Prove that the wheel can be installed
pip install dist/otdf_python-0.2.7-py3-none-any.whl
pip install dist/otdf_python-0.2.8-py3-none-any.whl

if [[ "$SKIP_TESTS" == "-s" || "$SKIP_TESTS" == "--skip-tests" ]]; then
echo "Build is complete, skipping tests."
Expand Down
2 changes: 1 addition & 1 deletion build-scripts/uv_make_and_validate_script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ loud_print "Installing wheel"
uv venv .venv-wheel --python 3.12 "$PY_TYPE"
source "${BUILD_ROOT}/.venv-wheel/bin/activate"
pip install pybindgen
pip install dist/otdf_python-0.2.7-py3-none-any.whl
pip install dist/otdf_python-0.2.8-py3-none-any.whl

if [[ "$SKIP_TESTS" == "-s" || "$SKIP_TESTS" == "--skip-tests" ]]; then
echo "Build is complete, skipping tests."
Expand Down
45 changes: 41 additions & 4 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"errors"
"fmt"
"io"
"log"
"os"
"path"
"path/filepath"
Expand Down Expand Up @@ -374,6 +375,7 @@ func EncryptFilesInDirNPE(dirPath string, config OpentdfConfig, dataAttributes [
if err != nil {
return nil, err
}
errChan := make(chan error, len(files))

var outputPaths []string
var mu sync.Mutex
Expand All @@ -386,14 +388,14 @@ func EncryptFilesInDirNPE(dirPath string, config OpentdfConfig, dataAttributes [
defer wg.Done()
sdkClient, err := newSdkClient(config, authScopes)
if err != nil {
fmt.Printf("failed to create SDK client: %v\n", err)
errChan <- fmt.Errorf("failed to create SDK client: %v", err)
return
}
inputFilePath := path.Join(dirPath, file.Name())
outputFilePath := inputFilePath + ".tdf"
got, err := encryptFileWithClient(inputFilePath, outputFilePath, sdkClient, config, dataAttributes)
if err != nil {
fmt.Printf("failed to encrypt file %s: %v\n", inputFilePath, err)
errChan <- fmt.Errorf("failed to encrypt file %s: %v", inputFilePath, err)
return
}
mu.Lock()
Expand All @@ -404,7 +406,18 @@ func EncryptFilesInDirNPE(dirPath string, config OpentdfConfig, dataAttributes [
}

wg.Wait()
close(errChan)

var errors []error
for err := range errChan {
errors = append(errors, err)
}

logOutputPaths(outputPaths, errors)

if len(errors) > 0 {
return outputPaths, fmt.Errorf("encountered errors during encryption: %v", errors)
}
return outputPaths, nil
}

Expand Down Expand Up @@ -439,6 +452,8 @@ func EncryptFilesWithExtensionsNPE(dirPath string, extensions []string, config O
outputPaths = append(outputPaths, got)
}

logOutputPaths(outputPaths, errors)

if len(errors) > 0 {
return outputPaths, fmt.Errorf("encountered errors during encryption: %v", errors)
}
Expand Down Expand Up @@ -637,8 +652,15 @@ func DecryptFilesInDirNPE(dirPath string, config OpentdfConfig) ([]string, error
outputPaths = append(outputPaths, path)
}

if len(errChan) > 0 {
return nil, <-errChan
var errors []error
for err := range errChan {
errors = append(errors, err)
}

logOutputPaths(outputPaths, errors)

if len(errors) > 0 {
return nil, fmt.Errorf("encountered errors during decryption: %v", errors)
}

return outputPaths, nil
Expand Down Expand Up @@ -701,6 +723,8 @@ func DecryptFilesWithExtensionsNPE(dirPath string, extensions []string, config O
}
}

logOutputPaths(outputPaths, errors)

if len(errors) > 0 {
return outputPaths, fmt.Errorf("encountered errors during decryption: %v", errors)
}
Expand Down Expand Up @@ -818,3 +842,16 @@ func findFiles(dir string, extensions []string) ([]string, error) {

return files, nil
}

func logOutputPaths(outputPaths []string, errors []error) {
if len(errors) > 0 {
log.Println("Errors occurred during processing:")
for _, err := range errors {
log.Printf("\t%s\n", err)
}
}
log.Println("Output Paths:")
for _, path := range outputPaths {
log.Printf("\t%s\n", path)
}
}
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[project]
name = "otdf-python"
# Should match 'setup.py' version number (used for gopy/pybindgen)
version = "0.2.7"
version = "0.2.8"
description = "Unofficial OpenTDF SDK for Python."
authors = [
{name="b-long", email="b-long@users.noreply.github.com"}
Expand All @@ -19,7 +19,7 @@ pybindgen = "^0.22.1"

[tool.poetry]
package-mode = false
version = "0.2.7"
version = "0.2.8"

[tool.poetry.dependencies]
python = ">=3.11,<3.14"
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
url="https://github.com/b-long/opentdf-python-sdk",
package_data={"otdf_python": ["*.so"]},
# Should match 'pyproject.toml' version number
version="0.2.7",
version="0.2.8",
author_email="b-long@users.noreply.github.com",
include_package_data=True,
)
2 changes: 1 addition & 1 deletion setup_ci.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def build_extension(self, ext: Extension):

setuptools.setup(
name="otdf_python",
version="0.2.7",
version="0.2.8",
author="b-long",
description="Unofficial OpenTDF SDK for Python.",
long_description_content_type="text/markdown",
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading