Skip to content

Commit b85dcdb

Browse files
committed
Distribute IfcCityJSON on PyPI
1 parent f740ca3 commit b85dcdb

File tree

5 files changed

+92
-8
lines changed

5 files changed

+92
-8
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: ci-ifccityjson-pypi
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
activate:
8+
runs-on: ubuntu-latest
9+
if: |
10+
github.repository == 'IfcOpenShell/IfcOpenShell'
11+
steps:
12+
- name: Set env
13+
run: echo ok go
14+
15+
build:
16+
needs: activate
17+
runs-on: ubuntu-latest
18+
strategy:
19+
fail-fast: false
20+
steps:
21+
- uses: actions/checkout@v2
22+
- uses: actions/setup-python@v2 # https://github.com/actions/setup-python
23+
with:
24+
python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax
25+
- name: Compile
26+
run: |
27+
pip install build
28+
cd src/ifccityjson &&
29+
make dist
30+
- name: Publish a Python distribution to PyPI
31+
uses: ortega2247/pypi-upload-action@master
32+
with:
33+
user: __token__
34+
password: ${{ secrets.PYPI_API_TOKEN }}
35+
packages_dir: src/ifccityjson/dist

src/ifccityjson/Makefile

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# IfcCityJSON - Python CityJSON to IFC converter
2+
# Copyright (C) 2020-2024 Dion Moult <dion@thinkmoult.com>
3+
#
4+
# This file is part of IfcCityJSON.
5+
#
6+
# IfcCityJSON is free software: you can redistribute it and/or modify
7+
# it under the terms of the GNU Lesser General Public License as published by
8+
# the Free Software Foundation, either version 3 of the License, or
9+
# (at your option) any later version.
10+
#
11+
# IfcCityJSON is distributed in the hope that it will be useful,
12+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
# GNU Lesser General Public License for more details.
15+
#
16+
# You should have received a copy of the GNU Lesser General Public License
17+
# along with IfcCityJSON. If not, see <http://www.gnu.org/licenses/>.
18+
19+
VERSION:=$(shell cat ../../VERSION)
20+
SED:=sed -i
21+
ifeq ($(UNAME_S),Darwin)
22+
SED:=sed -i '' -e
23+
endif
24+
25+
.PHONY: qa
26+
qa:
27+
black .
28+
29+
.PHONY: dist
30+
dist:
31+
rm -rf dist
32+
cp pyproject.toml pyproject.toml.bak
33+
cp ifccityjson/__init__.py __init__.py.bak
34+
$(SED) 's/version = "0.0.0"/version = "$(VERSION)"/' pyproject.toml
35+
$(SED) 's/version = "0.0.0"/version = "$(VERSION)"/' ifccityjson/__init__.py
36+
python -m build
37+
mv pyproject.toml.bak pyproject.toml
38+
mv __init__.py.bak ifccityjson/__init__.py

src/ifccityjson/ifccityjson/__init__.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
# ifccityjson - Python CityJSON to IFC converter
32
# Copyright (C) 2021 Laurens J.N. Oostwegel <l.oostwegel@gmail.com>
43
#
@@ -19,5 +18,4 @@
1918

2019
from .cityjson2ifc import *
2120

22-
# Export version number
23-
__version__ = "0.0.1"
21+
__version__ = version = "0.0.0"

src/ifccityjson/pyproject.toml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,28 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "ifccityjson"
7-
version = "0.1.0"
7+
version = "0.0.0"
88
authors = [
99
{ name = "Laurens J.N. Oostwegel", email = "l.oostwegel@gmail.com" },
1010
{ name = "Balázs Dukai", email = "balazs.dukai@3dgi.nl" },
1111
]
1212
description = "Converter for CityJSON files and IFC"
1313
readme = "README.md"
14-
keywords = ["IFC", "CityJSON"]
14+
keywords = ["IFC", "CityJSON", "BIM"]
1515
classifiers = [
1616
"Programming Language :: Python :: 3",
1717
"License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
1818
]
1919
dependencies = [
20-
"ifcopenshell>=0.7",
20+
"ifcopenshell",
2121
"cjio>=0.8"
2222
]
23+
2324
[project.urls]
24-
"Homepage" = "http://ifcopenshell.org"
25-
"Bug Tracker" = "https://github.com/ifcopenshell/ifcopenshell/issues"
25+
Homepage = "http://ifcopenshell.org"
26+
Documentation = "https://docs.ifcopenshell.org"
27+
Issues = "https://github.com/IfcOpenShell/IfcOpenShell/issues"
28+
29+
[tool.setuptools.packages.find]
30+
include = ["ifccityjson"]
31+
exclude = ["test*"]

src/ifcopenshell-python/docs/ifccityjson.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ IfcCityJSON
44
IfcCityJSON is a converter for CityJSON files and IFC. It currently only
55
supports one-way conversion from CityJSON to IFC.
66

7+
PyPI
8+
----
9+
10+
.. code-block::
11+
12+
pip install ifccityjson
13+
714
Source installation
815
-------------------
916

0 commit comments

Comments
 (0)