Distribute IfcFM on PyPI

This commit is contained in:
Dion Moult
2024-06-26 11:57:43 +10:00
parent 4976074b18
commit 16e98e1400
5 changed files with 114 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
name: ci-ifcfm-pypi
on:
workflow_dispatch:
jobs:
activate:
runs-on: ubuntu-latest
if: |
github.repository == 'IfcOpenShell/IfcOpenShell'
steps:
- name: Set env
run: echo ok go
build:
needs: activate
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2 # https://github.com/actions/setup-python
with:
python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax
- name: Compile
run: |
pip install build
cd src/ifcfm &&
make dist
- name: Publish a Python distribution to PyPI
uses: ortega2247/pypi-upload-action@master
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
packages_dir: src/ifcfm/dist
+38
View File
@@ -0,0 +1,38 @@
# IfcFM - IFC for facility management
# Copyright (C) 2020-2024 Dion Moult <dion@thinkmoult.com>
#
# This file is part of IfcFM.
#
# IfcFM is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# IfcFM is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with IfcFM. If not, see <http://www.gnu.org/licenses/>.
VERSION:=$(shell cat ../../VERSION)
SED:=sed -i
ifeq ($(UNAME_S),Darwin)
SED:=sed -i '' -e
endif
.PHONY: qa
qa:
black .
.PHONY: dist
dist:
rm -rf dist
cp pyproject.toml pyproject.toml.bak
cp ifcfm/__init__.py __init__.py.bak
$(SED) 's/version = "0.0.0"/version = "$(VERSION)"/' pyproject.toml
$(SED) 's/version = "0.0.0"/version = "$(VERSION)"/' ifcfm/__init__.py
python -m build
mv pyproject.toml.bak pyproject.toml
mv __init__.py.bak ifcfm/__init__.py
+2
View File
@@ -41,6 +41,8 @@ try:
except:
pass # No Pandas support
__version__ = version = "0.0.0"
class Parser:
def __init__(self, preset="basic"):
+32
View File
@@ -0,0 +1,32 @@
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "ifcfm"
version = "0.0.0"
authors = [
{ name="Dion Moult", email="dion@thinkmoult.com" },
]
description = "Extract data from IFC following facility management standards"
readme = "README.md"
keywords = ["IFC", "FM", "BIM"]
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
]
dependencies = [
"ifcopenshell",
"openpyxl",
"odfpy",
"pandas",
]
[project.urls]
Homepage = "http://ifcopenshell.org"
Documentation = "https://docs.ifcopenshell.org"
Issues = "https://github.com/IfcOpenShell/IfcOpenShell/issues"
[tool.setuptools.packages.find]
include = ["ifcfm"]
exclude = ["test*"]
+7
View File
@@ -26,6 +26,13 @@ to spreadsheets and other machine readable formats, such as ODS, XLSX, CSV,
Pandas, XML, and JSON. These formats may then be easily read, audited, or
imported into technologies that cannot work with IFC natively.
PyPI
----
.. code-block::
pip install ifcfm
Supported data standards
------------------------