Skip to content

Commit

Permalink
Fix import src error and update GitHub workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
Shao-Lun Huang committed Apr 17, 2024
1 parent 1728ce5 commit 4690c55
Show file tree
Hide file tree
Showing 23 changed files with 176 additions and 140 deletions.
90 changes: 0 additions & 90 deletions .github/workflows/python-publish.yml

This file was deleted.

127 changes: 127 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: Release Python Package

on:
# release:
# types: [created]
push:
tags:
- "**"

permissions:
contents: read

jobs:
build:
name: Build Distribution
runs-on: ubuntu-latest

strategy:
matrix:
python-version: [3.11]

steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install pypa/build
run: >-
python3 -m pip install --upgrade pip
pip install build
- name: Build package
run: python -m build

- name: Store the distribution packages
uses: actions/upload-artifact@v3
with:
name: python-package-distributions
path: dist/


publish-to-test-pypi:
name: Publish package to TestPyPI
needs:
- build
runs-on: ubuntu-latest
environment: test-pypi
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing

steps:
- name: Download all the dists
uses: actions/download-artifact@v3
with:
name: python-package-distributions
path: dist/

- name: Publish package to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/

publish-to-pypi:
name: Publish package to PyPI only when publishing to TestPyPI successfully
needs: [build, publish-to-test-pypi]

if: ${{ always() && contains(join(needs.*.result, ','), 'success') }}
runs-on: ubuntu-latest

environment: pypi
permissions:
id-token: write

steps:
- name: Download all the dists
uses: actions/download-artifact@v3
with:
name: python-package-distributions
path: dist/

- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1

github-release-without-signature:
name: Create a GitHub release draft without signature when a tag is pushed to GitHub and is submitted to PyPI

needs: [build, publish-to-pypi]
# if: github.event_name == 'push' && github.ref_type == 'tag'
if: ${{ always() && contains(join(needs.*.result, ','), 'success')}}

runs-on: ubuntu-latest

permissions:
contents: write # IMPORTANT: mandatory for making GitHub Releases

steps:
- name: Create release message
id: release_note
uses: mikepenz/release-changelog-builder-action@v4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
commitMode: true

- name: Create GitHub Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
body: ${{ steps.release_note.outputs.changelog }}
# Changes in this Release
# - First Change
# - Second Change
draft: true
prerelease: true
2 changes: 1 addition & 1 deletion pdm.lock

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

20 changes: 12 additions & 8 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,23 +1,30 @@
[project]
name = "qitip"
version = "0.1.0"
version = "0.1.0a1"
description = "Python package that serves as quantum information inequality prover"
authors = [
{name = "Shao-Lun Huang", email = "shaolh105022105@gmail.com"},
{ name = "Shao-Lun Huang", email = "shaolh105022105@gmail.com" },
]
dependencies = [
"numpy>=1.26.4",
"scipy>=1.12.0",
]
requires-python = ">=3.11"
readme = "README.md"
license = {text = "MIT"}

[project.license]
text = "MIT"

[project.urls]
Home = "https://github.com/Jamespark0/qitip"

[build-system]
requires = ["setuptools>=61", "wheel"]
requires = [
"setuptools>=61",
"wheel",
]
build-backend = "setuptools.build_meta"


[tool.pdm]
distribution = true

Expand All @@ -26,6 +33,3 @@ test = [
"pytest>=8.1.1",
"pytest-cov>=5.0.0",
]

[project.urls]
Home = "https://github.com/Jamespark0/qitip"
2 changes: 1 addition & 1 deletion src/qitip/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
from src.qitip.main import init
from qitip.main import init
2 changes: 1 addition & 1 deletion src/qitip/__main__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from src.qitip.main import init
from qitip.main import init

while True:
try:
Expand Down
2 changes: 1 addition & 1 deletion src/qitip/main.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from src.qitip.qitip import Qitip
from qitip.qitip import Qitip


def init(n: int) -> Qitip:
Expand Down
10 changes: 5 additions & 5 deletions src/qitip/objects/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from src.qitip.objects.constraints import Constraints, ConstraintsBuilder
from src.qitip.objects.entrospace import EntropicSpace, SpacePool
from src.qitip.objects.inequality import Inequality, InequalityBuilder
from src.qitip.objects.type_result import TypeResult, result_director
from src.qitip.objects.typings import InfoType
from qitip.objects.constraints import Constraints, ConstraintsBuilder
from qitip.objects.entrospace import EntropicSpace, SpacePool
from qitip.objects.inequality import Inequality, InequalityBuilder
from qitip.objects.type_result import TypeResult, result_director
from qitip.objects.typings import InfoType
4 changes: 2 additions & 2 deletions src/qitip/objects/constraints.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import numpy as np
from numpy.typing import ArrayLike

from src.qitip.utils.converters import create_matrix_with_coefficient_list
from src.qitip.utils.validators import validate_matrix
from qitip.utils.converters import create_matrix_with_coefficient_list
from qitip.utils.validators import validate_matrix


def update_constraints(
Expand Down
4 changes: 2 additions & 2 deletions src/qitip/objects/inequality.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import numpy as np
from numpy.typing import ArrayLike

from src.qitip.utils.converters import create_vector_with_coefficient
from src.qitip.utils.validators import validate_vector
from qitip.utils.converters import create_vector_with_coefficient
from qitip.utils.validators import validate_vector


@dataclass
Expand Down
6 changes: 3 additions & 3 deletions src/qitip/objects/type_result.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@

from numpy import array

from src.qitip.objects import Constraints, Inequality
from src.qitip.prover import Prover
from src.qitip.utils.converters import CoefficientsToDict, canonical_to_expression
from qitip.objects import Constraints, Inequality
from qitip.prover import Prover
from qitip.utils.converters import CoefficientsToDict, canonical_to_expression


@dataclass
Expand Down
2 changes: 1 addition & 1 deletion src/qitip/objects/typings.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from typing import TypeVar

from src.qitip.objects import Constraints, Inequality
from qitip.objects import Constraints, Inequality

InfoType = TypeVar("InfoType", Inequality, Constraints)
4 changes: 2 additions & 2 deletions src/qitip/prover.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import numpy as np
from scipy.optimize import OptimizeResult, linprog

from src.qitip.objects import EntropicSpace
from qitip.objects import EntropicSpace

# Prover is created with Quantum Elemental Inequalities
# In principle, it can also be created with classical elemental inequalities
from src.qitip.quantum_inequalities import QuantumElementalInequalities
from qitip.quantum_inequalities import QuantumElementalInequalities


class Prover:
Expand Down
6 changes: 3 additions & 3 deletions src/qitip/qitip.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from typing import Optional

from src.qitip.objects import (
from qitip.objects import (
Constraints,
ConstraintsBuilder,
EntropicSpace,
Expand All @@ -11,8 +11,8 @@
TypeResult,
result_director,
)
from src.qitip.prover import Prover, ProverPool
from src.qitip.utils.converters import CoefficientsToDict
from qitip.prover import Prover, ProverPool
from qitip.utils.converters import CoefficientsToDict


class Qitip:
Expand Down
3 changes: 1 addition & 2 deletions tests/test_builders.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from typing import Iterable, Sequence

import numpy as np

from src.qitip.objects import (
from qitip.objects import (
Constraints,
ConstraintsBuilder,
Inequality,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_constraints.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from src.qitip.objects import Constraints
from qitip.objects import Constraints

vector_entry: dict[frozenset[int], int] = {
frozenset((1,)): 0,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_entropic_space.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from src.qitip.objects import EntropicSpace
from qitip.objects import EntropicSpace


def test_from_no_random_variable() -> None:
Expand Down
Loading

0 comments on commit 4690c55

Please sign in to comment.