summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-06-20 09:36:31 +0000
committerCoprDistGit <infra@openeuler.org>2023-06-20 09:36:31 +0000
commitabafbc95bdc33e98a22a4764c9d18b5f08bd3671 (patch)
tree1ae8449c07a628d152e550fb4f243cda8e770d0e
parent6e571415ba8ac53c5ab5a6c6216cef8e546d86fe (diff)
automatic import of python-halo-bianopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-halo-bian.spec432
-rw-r--r--sources1
3 files changed, 434 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..98f2f2c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/halo-bian-0.12.54.tar.gz
diff --git a/python-halo-bian.spec b/python-halo-bian.spec
new file mode 100644
index 0000000..4ef33ce
--- /dev/null
+++ b/python-halo-bian.spec
@@ -0,0 +1,432 @@
+%global _empty_manifest_terminate_build 0
+Name: python-halo-bian
+Version: 0.12.54
+Release: 1
+Summary: this is the Halo Bian library
+License: MIT License
+URL: https://github.com/halo-framework/halo-bian
+Source0: https://mirrors.aliyun.com/pypi/web/packages/8f/2d/122d3ec42f344b069d04d45e7804b797fea084fed71cf0c2efbc85fdc600/halo-bian-0.12.54.tar.gz
+BuildArch: noarch
+
+
+%description
+<p align="center">
+ <img src="https://i.ibb.co/9V7gLNH/halo-plat.png" alt="Halo Serverless" border="0" height="250" width="500" />
+</p>
+
+# Halo Bian - Flask BIAN Python Reference Architecture Library
+
+The **Halo Bian** library is based on the [**Halo**](https://github.com/halo-framework/halo-app) library which is a python based library utilizing [**Serverless**](https://logz.io/blog/serverless-vs-containers/) technology and [**microservices architecture**](http://blog.binaris.com/your-guide-to-migrating-existing-microservices-to-serverless/)
+
+
+BIAN (Banking Industry Architecture Network) is a membership group committed to developing open standards around banking and financial services. A key deliverable of this group is the BIAN Service Landscape model which defines a comprehensive services architecture for financial transactions and facilities. This library is an implementation of the BIAN model leveraging the Flask framework and allows a developer to **rapidly create BIAN-compliant services** while hiding much of the underlying BIAN model details. See www.bian.org for more information on BIAN.
+
+This library leverages not only the Flask framework, but a number of the Flask Cloud Services components as well to facilitate building robust and resilient cloud-native BIAN microservices.
+deploy your Service Domain to your local environment or use [**Serverless Framework**](https://serverless.com/) and [**zappa**](https://github.com/Miserlou/Zappa) to deploy your Service Domain to AWS.
+
+## BIAN Basics
+
+Before diving into the library architecture, it helps to understand two key concepts within BIAN, service domains and control records.
+
+### Service Domain
+
+The BIAN Service Landscape defines discrete areas of responsibility known as service domains. A **Service Domain** is a combination of a **Functional Pattern** and an **Asset Type**. For instance, using the functional pattern 'Registry' with the asset type 'Product' would yield a 'Product Registry' service domain, which could be used to manage a product catalog. If we instead changed the asset type to 'Device', we would have a 'Device Registry' service domain that could be used to authorize services on a mobile device.
+
+### Control Record
+
+The **Control Record** is used to track the state of a service domain, and like the service domain is derived from the functional pattern and asset type. However, in a control record, the functional pattern is represented by the **Generic Artifact Type**. There is a one-to-one correlation between functional patterns and generic artifact types. The control record goes one step further in delineating between specific service domain operations by introducing an additional parameter called the **Behavior Qualifier**, which, like generic artifact types, have a one-to-one correlation with functional patterns.
+
+### In Addition
+
+- The commercial behaviors that are called Functional Patterns. Functional Patterns, Generic Artifacts and Behavior Qualifier Types are mapped and correlated:
+![Flask BIAN Functional Patterns](docs/internal_sd.png)<p/>
+[**Image From Bian Manual**](https://bian.org)
+
+- A Service Domain applies one of the 18 functional patterns to instances of one type of asset:
+![Flask BIAN Asset Types](docs/asset_types.png)<p/>
+[**Image From Bian Manual**](https://bian.org)
+
+- The standard set of ‘action terms’ that characterize the range of service operation calls :
+![Flask BIAN Action Items](docs/action_items.png)<p/>
+[**Image From Bian Manual**](https://bian.org)
+
+- The Default Action Term By Functional Pattern matrix:
+
+![Flask BIAN Matrix](docs/matrix.png)<p/>
+[**Image From Bian Manual**](https://bian.org)
+
+
+### BIAN Summary
+
+So to summarize the above:
+
+**Functional Pattern** ==> **Generic Artifact Type** ==> **Behavior Qualifier**
+
+**Functional Pattern** + **Asset Type** = **Service Domain**
+
+**Generic Artifact Type** + **Asset Type** + (optional)**Behavior Qualifier** = **Control Record**
+
+**Functional Pattern** is correlated with a set of **Action Term** = **Service Domain Operations**
+
+Key Benefits of using BIAN API solutions:
+
+- Support for Emerging Industry Approaches – Two key technology approaches are considered: API development and the adoption of a Micro-service architecture
+- Support for Industry Standards – The BIAN Service Domains and service operations present an Industry standard definition for the componentization and service enablement of Banking
+- Support for Incremental Adoption/Migration – BIAN aligned solutions can be implemented and adopted incrementally enabling a prioritized migration from constraining legacy architectures
+
+## Architecture
+
+The Flask BIAN library implements a BIAN service domain wrapper that acts as an API and data translator while hiding much of the BIAN model complexity from the developer.
+
+![Flask BIAN Service Domain](docs/Halo-BIANServiceDomain.png)
+
+<p/>Halo Bian provides the following features:
+
+- Bian version 7 - API release competability
+- OAS ver. 2 support
+- BianRequest object provides bian parameters support
+- ServiceProperties object provides service status
+- AssetType, GenericArtifact, BehaviorQualifier support per service domain
+- BianServiceInfo object privides Bian details per service
+- Support for all Bian Service Operations
+- Support for all FunctionalPatterns
+
+<p/>Halo provides the following features:
+
+- Flask development for AWS Lambda & Dynamodb
+- [correlation id across microservices](https://theburningmonk.com/2017/09/capture-and-forward-correlation-ids-through-different-lambda-event-sources/)
+- [structured json based logging](https://theburningmonk.com/2018/01/you-need-to-use-structured-logging-with-aws-lambda/)
+- [sample debug log in production](https://theburningmonk.com/2018/04/you-need-to-sample-debug-logs-in-production/)
+- [support for microservice transactions with the saga pattern](https://read.acloud.guru/how-the-saga-pattern-manages-failures-with-aws-lambda-and-step-functions-bc8f7129f900)
+- [using SSM Parameter Store over Lambda env variables](https://hackernoon.com/you-should-use-ssm-parameter-store-over-lambda-env-variables-5197fc6ea45b)
+- [Serverless Error Handling & trace id for end users](https://aws.amazon.com/blogs/compute/error-handling-patterns-in-amazon-api-gateway-and-aws-lambda/)
+- [Lambda timeout](https://blog.epsagon.com/best-practices-for-aws-lambda-timeouts) management for [slow HTTP responses](https://theburningmonk.com/2018/01/aws-lambda-use-the-invocation-context-to-better-handle-slow-http-responses/)
+- [ootb support for Idempotent service invocations (md5)](https://cloudonaut.io/your-lambda-function-might-execute-twice-deal-with-it/)
+
+If you are building a Python web app running on AWS Lambda (Flask), use this library to manage api transactions:
+
+```
+ sagax = load_saga("test", jsonx, schema)
+ payloads = {"BookHotel": {"abc": "def"}, "BookFlight": {"abc": "def"}, "BookRental": {"abc": "def"},
+ "CancelHotel": {"abc": "def"}, "CancelFlight": {"abc": "def"}, "CancelRental": {"abc": "def"}}
+ apis = {"BookHotel": self.create_api1, "BookFlight": self.create_api2, "BookRental": self.create_api3,
+ "CancelHotel": self.create_api4, "CancelFlight": self.create_api5, "CancelRental": self.create_api6}
+ try:
+ self.context = Util.get_lambda_context(request)
+ ret = sagax.execute(self.req_context, payloads, apis)
+ return {"saga": "good"}, 200
+ except SagaRollBack as e:
+ return {"saga": "bad"}, 500
+```
+
+
+## License
+
+This project is licensed under the MIT License
+
+## Acknowledgments
+
+* Pivotal-Field-Engineering - https://github.com/Pivotal-Field-Engineering/spring-bian
+
+* Bian api - https://github.com/bianapis
+
+* Bian - http://bian.org
+
+%package -n python3-halo-bian
+Summary: this is the Halo Bian library
+Provides: python-halo-bian
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-halo-bian
+<p align="center">
+ <img src="https://i.ibb.co/9V7gLNH/halo-plat.png" alt="Halo Serverless" border="0" height="250" width="500" />
+</p>
+
+# Halo Bian - Flask BIAN Python Reference Architecture Library
+
+The **Halo Bian** library is based on the [**Halo**](https://github.com/halo-framework/halo-app) library which is a python based library utilizing [**Serverless**](https://logz.io/blog/serverless-vs-containers/) technology and [**microservices architecture**](http://blog.binaris.com/your-guide-to-migrating-existing-microservices-to-serverless/)
+
+
+BIAN (Banking Industry Architecture Network) is a membership group committed to developing open standards around banking and financial services. A key deliverable of this group is the BIAN Service Landscape model which defines a comprehensive services architecture for financial transactions and facilities. This library is an implementation of the BIAN model leveraging the Flask framework and allows a developer to **rapidly create BIAN-compliant services** while hiding much of the underlying BIAN model details. See www.bian.org for more information on BIAN.
+
+This library leverages not only the Flask framework, but a number of the Flask Cloud Services components as well to facilitate building robust and resilient cloud-native BIAN microservices.
+deploy your Service Domain to your local environment or use [**Serverless Framework**](https://serverless.com/) and [**zappa**](https://github.com/Miserlou/Zappa) to deploy your Service Domain to AWS.
+
+## BIAN Basics
+
+Before diving into the library architecture, it helps to understand two key concepts within BIAN, service domains and control records.
+
+### Service Domain
+
+The BIAN Service Landscape defines discrete areas of responsibility known as service domains. A **Service Domain** is a combination of a **Functional Pattern** and an **Asset Type**. For instance, using the functional pattern 'Registry' with the asset type 'Product' would yield a 'Product Registry' service domain, which could be used to manage a product catalog. If we instead changed the asset type to 'Device', we would have a 'Device Registry' service domain that could be used to authorize services on a mobile device.
+
+### Control Record
+
+The **Control Record** is used to track the state of a service domain, and like the service domain is derived from the functional pattern and asset type. However, in a control record, the functional pattern is represented by the **Generic Artifact Type**. There is a one-to-one correlation between functional patterns and generic artifact types. The control record goes one step further in delineating between specific service domain operations by introducing an additional parameter called the **Behavior Qualifier**, which, like generic artifact types, have a one-to-one correlation with functional patterns.
+
+### In Addition
+
+- The commercial behaviors that are called Functional Patterns. Functional Patterns, Generic Artifacts and Behavior Qualifier Types are mapped and correlated:
+![Flask BIAN Functional Patterns](docs/internal_sd.png)<p/>
+[**Image From Bian Manual**](https://bian.org)
+
+- A Service Domain applies one of the 18 functional patterns to instances of one type of asset:
+![Flask BIAN Asset Types](docs/asset_types.png)<p/>
+[**Image From Bian Manual**](https://bian.org)
+
+- The standard set of ‘action terms’ that characterize the range of service operation calls :
+![Flask BIAN Action Items](docs/action_items.png)<p/>
+[**Image From Bian Manual**](https://bian.org)
+
+- The Default Action Term By Functional Pattern matrix:
+
+![Flask BIAN Matrix](docs/matrix.png)<p/>
+[**Image From Bian Manual**](https://bian.org)
+
+
+### BIAN Summary
+
+So to summarize the above:
+
+**Functional Pattern** ==> **Generic Artifact Type** ==> **Behavior Qualifier**
+
+**Functional Pattern** + **Asset Type** = **Service Domain**
+
+**Generic Artifact Type** + **Asset Type** + (optional)**Behavior Qualifier** = **Control Record**
+
+**Functional Pattern** is correlated with a set of **Action Term** = **Service Domain Operations**
+
+Key Benefits of using BIAN API solutions:
+
+- Support for Emerging Industry Approaches – Two key technology approaches are considered: API development and the adoption of a Micro-service architecture
+- Support for Industry Standards – The BIAN Service Domains and service operations present an Industry standard definition for the componentization and service enablement of Banking
+- Support for Incremental Adoption/Migration – BIAN aligned solutions can be implemented and adopted incrementally enabling a prioritized migration from constraining legacy architectures
+
+## Architecture
+
+The Flask BIAN library implements a BIAN service domain wrapper that acts as an API and data translator while hiding much of the BIAN model complexity from the developer.
+
+![Flask BIAN Service Domain](docs/Halo-BIANServiceDomain.png)
+
+<p/>Halo Bian provides the following features:
+
+- Bian version 7 - API release competability
+- OAS ver. 2 support
+- BianRequest object provides bian parameters support
+- ServiceProperties object provides service status
+- AssetType, GenericArtifact, BehaviorQualifier support per service domain
+- BianServiceInfo object privides Bian details per service
+- Support for all Bian Service Operations
+- Support for all FunctionalPatterns
+
+<p/>Halo provides the following features:
+
+- Flask development for AWS Lambda & Dynamodb
+- [correlation id across microservices](https://theburningmonk.com/2017/09/capture-and-forward-correlation-ids-through-different-lambda-event-sources/)
+- [structured json based logging](https://theburningmonk.com/2018/01/you-need-to-use-structured-logging-with-aws-lambda/)
+- [sample debug log in production](https://theburningmonk.com/2018/04/you-need-to-sample-debug-logs-in-production/)
+- [support for microservice transactions with the saga pattern](https://read.acloud.guru/how-the-saga-pattern-manages-failures-with-aws-lambda-and-step-functions-bc8f7129f900)
+- [using SSM Parameter Store over Lambda env variables](https://hackernoon.com/you-should-use-ssm-parameter-store-over-lambda-env-variables-5197fc6ea45b)
+- [Serverless Error Handling & trace id for end users](https://aws.amazon.com/blogs/compute/error-handling-patterns-in-amazon-api-gateway-and-aws-lambda/)
+- [Lambda timeout](https://blog.epsagon.com/best-practices-for-aws-lambda-timeouts) management for [slow HTTP responses](https://theburningmonk.com/2018/01/aws-lambda-use-the-invocation-context-to-better-handle-slow-http-responses/)
+- [ootb support for Idempotent service invocations (md5)](https://cloudonaut.io/your-lambda-function-might-execute-twice-deal-with-it/)
+
+If you are building a Python web app running on AWS Lambda (Flask), use this library to manage api transactions:
+
+```
+ sagax = load_saga("test", jsonx, schema)
+ payloads = {"BookHotel": {"abc": "def"}, "BookFlight": {"abc": "def"}, "BookRental": {"abc": "def"},
+ "CancelHotel": {"abc": "def"}, "CancelFlight": {"abc": "def"}, "CancelRental": {"abc": "def"}}
+ apis = {"BookHotel": self.create_api1, "BookFlight": self.create_api2, "BookRental": self.create_api3,
+ "CancelHotel": self.create_api4, "CancelFlight": self.create_api5, "CancelRental": self.create_api6}
+ try:
+ self.context = Util.get_lambda_context(request)
+ ret = sagax.execute(self.req_context, payloads, apis)
+ return {"saga": "good"}, 200
+ except SagaRollBack as e:
+ return {"saga": "bad"}, 500
+```
+
+
+## License
+
+This project is licensed under the MIT License
+
+## Acknowledgments
+
+* Pivotal-Field-Engineering - https://github.com/Pivotal-Field-Engineering/spring-bian
+
+* Bian api - https://github.com/bianapis
+
+* Bian - http://bian.org
+
+%package help
+Summary: Development documents and examples for halo-bian
+Provides: python3-halo-bian-doc
+%description help
+<p align="center">
+ <img src="https://i.ibb.co/9V7gLNH/halo-plat.png" alt="Halo Serverless" border="0" height="250" width="500" />
+</p>
+
+# Halo Bian - Flask BIAN Python Reference Architecture Library
+
+The **Halo Bian** library is based on the [**Halo**](https://github.com/halo-framework/halo-app) library which is a python based library utilizing [**Serverless**](https://logz.io/blog/serverless-vs-containers/) technology and [**microservices architecture**](http://blog.binaris.com/your-guide-to-migrating-existing-microservices-to-serverless/)
+
+
+BIAN (Banking Industry Architecture Network) is a membership group committed to developing open standards around banking and financial services. A key deliverable of this group is the BIAN Service Landscape model which defines a comprehensive services architecture for financial transactions and facilities. This library is an implementation of the BIAN model leveraging the Flask framework and allows a developer to **rapidly create BIAN-compliant services** while hiding much of the underlying BIAN model details. See www.bian.org for more information on BIAN.
+
+This library leverages not only the Flask framework, but a number of the Flask Cloud Services components as well to facilitate building robust and resilient cloud-native BIAN microservices.
+deploy your Service Domain to your local environment or use [**Serverless Framework**](https://serverless.com/) and [**zappa**](https://github.com/Miserlou/Zappa) to deploy your Service Domain to AWS.
+
+## BIAN Basics
+
+Before diving into the library architecture, it helps to understand two key concepts within BIAN, service domains and control records.
+
+### Service Domain
+
+The BIAN Service Landscape defines discrete areas of responsibility known as service domains. A **Service Domain** is a combination of a **Functional Pattern** and an **Asset Type**. For instance, using the functional pattern 'Registry' with the asset type 'Product' would yield a 'Product Registry' service domain, which could be used to manage a product catalog. If we instead changed the asset type to 'Device', we would have a 'Device Registry' service domain that could be used to authorize services on a mobile device.
+
+### Control Record
+
+The **Control Record** is used to track the state of a service domain, and like the service domain is derived from the functional pattern and asset type. However, in a control record, the functional pattern is represented by the **Generic Artifact Type**. There is a one-to-one correlation between functional patterns and generic artifact types. The control record goes one step further in delineating between specific service domain operations by introducing an additional parameter called the **Behavior Qualifier**, which, like generic artifact types, have a one-to-one correlation with functional patterns.
+
+### In Addition
+
+- The commercial behaviors that are called Functional Patterns. Functional Patterns, Generic Artifacts and Behavior Qualifier Types are mapped and correlated:
+![Flask BIAN Functional Patterns](docs/internal_sd.png)<p/>
+[**Image From Bian Manual**](https://bian.org)
+
+- A Service Domain applies one of the 18 functional patterns to instances of one type of asset:
+![Flask BIAN Asset Types](docs/asset_types.png)<p/>
+[**Image From Bian Manual**](https://bian.org)
+
+- The standard set of ‘action terms’ that characterize the range of service operation calls :
+![Flask BIAN Action Items](docs/action_items.png)<p/>
+[**Image From Bian Manual**](https://bian.org)
+
+- The Default Action Term By Functional Pattern matrix:
+
+![Flask BIAN Matrix](docs/matrix.png)<p/>
+[**Image From Bian Manual**](https://bian.org)
+
+
+### BIAN Summary
+
+So to summarize the above:
+
+**Functional Pattern** ==> **Generic Artifact Type** ==> **Behavior Qualifier**
+
+**Functional Pattern** + **Asset Type** = **Service Domain**
+
+**Generic Artifact Type** + **Asset Type** + (optional)**Behavior Qualifier** = **Control Record**
+
+**Functional Pattern** is correlated with a set of **Action Term** = **Service Domain Operations**
+
+Key Benefits of using BIAN API solutions:
+
+- Support for Emerging Industry Approaches – Two key technology approaches are considered: API development and the adoption of a Micro-service architecture
+- Support for Industry Standards – The BIAN Service Domains and service operations present an Industry standard definition for the componentization and service enablement of Banking
+- Support for Incremental Adoption/Migration – BIAN aligned solutions can be implemented and adopted incrementally enabling a prioritized migration from constraining legacy architectures
+
+## Architecture
+
+The Flask BIAN library implements a BIAN service domain wrapper that acts as an API and data translator while hiding much of the BIAN model complexity from the developer.
+
+![Flask BIAN Service Domain](docs/Halo-BIANServiceDomain.png)
+
+<p/>Halo Bian provides the following features:
+
+- Bian version 7 - API release competability
+- OAS ver. 2 support
+- BianRequest object provides bian parameters support
+- ServiceProperties object provides service status
+- AssetType, GenericArtifact, BehaviorQualifier support per service domain
+- BianServiceInfo object privides Bian details per service
+- Support for all Bian Service Operations
+- Support for all FunctionalPatterns
+
+<p/>Halo provides the following features:
+
+- Flask development for AWS Lambda & Dynamodb
+- [correlation id across microservices](https://theburningmonk.com/2017/09/capture-and-forward-correlation-ids-through-different-lambda-event-sources/)
+- [structured json based logging](https://theburningmonk.com/2018/01/you-need-to-use-structured-logging-with-aws-lambda/)
+- [sample debug log in production](https://theburningmonk.com/2018/04/you-need-to-sample-debug-logs-in-production/)
+- [support for microservice transactions with the saga pattern](https://read.acloud.guru/how-the-saga-pattern-manages-failures-with-aws-lambda-and-step-functions-bc8f7129f900)
+- [using SSM Parameter Store over Lambda env variables](https://hackernoon.com/you-should-use-ssm-parameter-store-over-lambda-env-variables-5197fc6ea45b)
+- [Serverless Error Handling & trace id for end users](https://aws.amazon.com/blogs/compute/error-handling-patterns-in-amazon-api-gateway-and-aws-lambda/)
+- [Lambda timeout](https://blog.epsagon.com/best-practices-for-aws-lambda-timeouts) management for [slow HTTP responses](https://theburningmonk.com/2018/01/aws-lambda-use-the-invocation-context-to-better-handle-slow-http-responses/)
+- [ootb support for Idempotent service invocations (md5)](https://cloudonaut.io/your-lambda-function-might-execute-twice-deal-with-it/)
+
+If you are building a Python web app running on AWS Lambda (Flask), use this library to manage api transactions:
+
+```
+ sagax = load_saga("test", jsonx, schema)
+ payloads = {"BookHotel": {"abc": "def"}, "BookFlight": {"abc": "def"}, "BookRental": {"abc": "def"},
+ "CancelHotel": {"abc": "def"}, "CancelFlight": {"abc": "def"}, "CancelRental": {"abc": "def"}}
+ apis = {"BookHotel": self.create_api1, "BookFlight": self.create_api2, "BookRental": self.create_api3,
+ "CancelHotel": self.create_api4, "CancelFlight": self.create_api5, "CancelRental": self.create_api6}
+ try:
+ self.context = Util.get_lambda_context(request)
+ ret = sagax.execute(self.req_context, payloads, apis)
+ return {"saga": "good"}, 200
+ except SagaRollBack as e:
+ return {"saga": "bad"}, 500
+```
+
+
+## License
+
+This project is licensed under the MIT License
+
+## Acknowledgments
+
+* Pivotal-Field-Engineering - https://github.com/Pivotal-Field-Engineering/spring-bian
+
+* Bian api - https://github.com/bianapis
+
+* Bian - http://bian.org
+
+%prep
+%autosetup -n halo-bian-0.12.54
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-halo-bian -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.12.54-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..dfb7364
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+a5b115ea7872e8cc2c15257c169b7506 halo-bian-0.12.54.tar.gz