Metadata-Version: 2.4
Name: philote-mdo
Version: 0.8.0
Summary: Python bindings that implement the Philote-MDO standard.
Author: Christopher Lupp
License: Apache-2.0
Project-URL: Homepage, https://mdo-standards.github.io/Philote-Python/
Project-URL: Repository, https://github.com/mdo-standards/Philote-Python
Project-URL: Documentation, https://mdo-standards.github.io/Philote-Python/
Keywords: mdo,optimization,rpc
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: grpcio~=1.66.0
Requires-Dist: protobuf~=5.29.0
Requires-Dist: numpy>=1.19.0
Requires-Dist: scipy>=1.10.0
Provides-Extra: openmdao
Requires-Dist: openmdao>=3.0; extra == "openmdao"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: black>=23.0; extra == "dev"
Requires-Dist: flake8>=6.0; extra == "dev"
Requires-Dist: grpcio-tools~=1.66.0; extra == "dev"
Requires-Dist: protoletariat>=3.0; extra == "dev"
Dynamic: license-file

<div align="center">
<img src="https://github.com/MDO-Standards/Philote-Python/blob/main/doc/graphics/philote-python.svg?raw=true" width="500">
</div>

[//]: # (![Philote]&#40;https://github.com/MDO-Standards/Philote-Python/blob/main/doc/graphics/philote-python.svg?raw=true&#41;)

[![Unit and Integration Tests](https://github.com/MDO-Standards/Philote-Python/actions/workflows/tests.yaml/badge.svg)](https://github.com/MDO-Standards/Philote-Python/actions/workflows/tests.yaml)
[![codecov](https://codecov.io/gh/MDO-Standards/Philote-Python/graph/badge.svg?token=6PK30STMDL)](https://codecov.io/gh/MDO-Standards/Philote-Python)
[![CodeQL](https://github.com/MDO-Standards/Philote-Python/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/MDO-Standards/Philote-Python/actions/workflows/github-code-scanning/codeql)
[![Deploy Documentation](https://github.com/MDO-Standards/Philote-Python/actions/workflows/documentation.yaml/badge.svg)](https://github.com/MDO-Standards/Philote-Python/actions/workflows/documentation.yaml)
![PyPI - Version](https://img.shields.io/pypi/v/philote-mdo?style=flat&color=blue)




# Philote-Python

Python library for using and creating Philote analysis servers.

Documentation can be found at:

https://MDO-Standards.github.io/Philote-Python


## Requirements

The development process requires the following tools to be installed
(they will be installed if not present):

- grpcio-tools
- protoletariat
- importlib.resources

Additionally, the following dependencies are required by Philote MDO and will be
installed automatically during the installation process:

- numpy
- scipy
- grpcio

To run the unit and integration tests, you will need:

- openmdao (can be found [here](https://github.com/OpenMDAO/OpenMDAO) or installed via pip)

## Installation

The easiest way for users to install this library is via pip using the PyPI package:

    pip install philote-mdo

If you need or want to install the package from the repository, you can doe this using pip:

    pip install <path/to/Philote-Python>

or

    pip install -e <path/to/Philote-Python>

for an editable install. Note, that <path/to/Philote-Python> is the path to the
repository root directory (the one containing pyproject.toml). Often, people
install packages when located in that directory, making the corresponding
command:

    pip install .

Unlike earlier version, the package is distributed with generated gRPC python files. This means that you do not need to
have grpciotools or protoc installed when using Philote-Python. If you are doing development work, specifically when you
are adding new gRPC features, you will need to regenerate the gRPC files. To do this, run the following command from the
repository root directory:

    python utils/compile_proto.py


## License

This package is licensed under the Apache 2 license:


>   Copyright 2022-2025 Christopher A. Lupp
>   
>   Licensed under the Apache License, Version 2.0 (the "License");
>   you may not use this file except in compliance with the License.
>   You may obtain a copy of the License at
>   
>       http://www.apache.org/licenses/LICENSE-2.0
>   
>   Unless required by applicable law or agreed to in writing, software
>   distributed under the License is distributed on an "AS IS" BASIS,
>   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>   See the License for the specific language governing permissions and
>   limitations under the License.



This work has been cleared for public release, distribution unlimited, case
number: AFRL-2023-5713.

The views expressed are those of the authors and do not reflect the official
guidance or position of the United States Government, the Department of Defense
or of the United States Air Force.

Statement from DoD: The Appearance of external hyperlinks does not constitute
endorsement by the United States Department of Defense (DoD) of the linked
websites, of the information, products, or services contained therein. The DoD
does not exercise any editorial, security, or other control over the information
you may find at these locations.
