diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-sagemaker-training.spec | 708 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 710 insertions, 0 deletions
@@ -0,0 +1 @@ +/sagemaker_training-4.4.10.tar.gz diff --git a/python-sagemaker-training.spec b/python-sagemaker-training.spec new file mode 100644 index 0000000..3120d8d --- /dev/null +++ b/python-sagemaker-training.spec @@ -0,0 +1,708 @@ +%global _empty_manifest_terminate_build 0 +Name: python-sagemaker-training +Version: 4.4.10 +Release: 1 +Summary: Open source library for creating containers to run on Amazon SageMaker. +License: Apache License 2.0 +URL: https://github.com/aws/sagemaker-training-toolkit/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/6f/fa/0496339dc1a1f0ca0e7314efc2034cfd51a840c727fe5e4979ad4fcf4c3a/sagemaker_training-4.4.10.tar.gz +BuildArch: noarch + + +%description + + +# SageMaker Training Toolkit + +[](https://pypi.python.org/pypi/sagemaker-training) [](https://pypi.python.org/pypi/sagemaker-training) [](https://github.com/python/black) + +Train machine learning models within a Docker container using Amazon SageMaker. + + +## :books: Background + +[Amazon SageMaker](https://aws.amazon.com/sagemaker/) is a fully managed service for data science and machine learning (ML) workflows. +You can use Amazon SageMaker to simplify the process of building, training, and deploying ML models. + +To train a model, you can include your training script and dependencies in a [Docker container](https://www.docker.com/resources/what-container) that runs your training code. +A container provides an effectively isolated environment, ensuring a consistent runtime and reliable training process. + +The **SageMaker Training Toolkit** can be easily added to any Docker container, making it compatible with SageMaker for [training models](https://aws.amazon.com/sagemaker/train/). +If you use a [prebuilt SageMaker Docker image for training](https://docs.aws.amazon.com/sagemaker/latest/dg/pre-built-containers-frameworks-deep-learning.html), this library may already be included. + +For more information, see the Amazon SageMaker Developer Guide sections on [using Docker containers for training](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). + +## :hammer_and_wrench: Installation + +To install this library in your Docker image, add the following line to your [Dockerfile](https://docs.docker.com/engine/reference/builder/): + +``` dockerfile +RUN pip3 install sagemaker-training +``` + +## :computer: Usage + +The following are brief how-to guides. +For complete, working examples of custom training containers built with the SageMaker Training Toolkit, please see [the example notebooks](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/advanced_functionality/custom-training-containers). + +### Create a Docker image and train a model + +1. Write a training script (eg. `train.py`). + +2. [Define a container with a Dockerfile](https://docs.docker.com/get-started/part2/#define-a-container-with-dockerfile) that includes the training script and any dependencies. + + The training script must be located in the `/opt/ml/code` directory. + The environment variable `SAGEMAKER_PROGRAM` defines which file inside the `/opt/ml/code` directory to use as the training entry point. + When training starts, the interpreter executes the entry point defined by `SAGEMAKER_PROGRAM`. + Python and shell scripts are both supported. + + ``` docker + FROM yourbaseimage:tag + + # install the SageMaker Training Toolkit + RUN pip3 install sagemaker-training + + # copy the training script inside the container + COPY train.py /opt/ml/code/train.py + + # define train.py as the script entry point + ENV SAGEMAKER_PROGRAM train.py + ``` + +3. Build and tag the Docker image. + + ``` shell + docker build -t custom-training-container . + ``` + +4. Use the Docker image to start a training job using the [SageMaker Python SDK](https://github.com/aws/sagemaker-python-sdk). + + ``` python + from sagemaker.estimator import Estimator + + estimator = Estimator(image_name="custom-training-container", + role="SageMakerRole", + train_instance_count=1, + train_instance_type="local") + + estimator.fit() + ``` + + To train a model using the image on SageMaker, [push the image to ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) and start a SageMaker training job with the image URI. + + +### Pass arguments to the entry point using hyperparameters + +Any hyperparameters provided by the training job are passed to the entry point as script arguments. +The SageMaker Python SDK uses this feature to pass special hyperparameters to the training job, including `sagemaker_program` and `sagemaker_submit_directory`. +The complete list of SageMaker hyperparameters is available [here](https://github.com/aws/sagemaker-training-toolkit/blob/master/src/sagemaker_training/params.py). + +1. Implement an argument parser in the entry point script. For example, in a Python script: + + ``` python + import argparse + + if __name__ == "__main__": + parser = argparse.ArgumentParser() + + parser.add_argument("--learning-rate", type=int, default=1) + parser.add_argument("--batch-size", type=int, default=64) + parser.add_argument("--communicator", type=str) + parser.add_argument("--frequency", type=int, default=20) + + args = parser.parse_args() + ... + ``` + +2. Start a training job with hyperparameters. + + ``` python + {"HyperParameters": {"batch-size": 256, "learning-rate": 0.0001, "communicator": "pure_nccl"}} + ``` + +### Read additional information using environment variables + +An entry point often needs additional information not available in `hyperparameters`. +The SageMaker Training Toolkit writes this information as environment variables that are available from within the script. +For example, this training job includes the channels `training` and `testing`: + +``` python +from sagemaker.pytorch import PyTorch + +estimator = PyTorch(entry_point="train.py", ...) + +estimator.fit({"training": "s3://bucket/path/to/training/data", + "testing": "s3://bucket/path/to/testing/data"}) +``` + +The environment variables `SM_CHANNEL_TRAINING` and `SM_CHANNEL_TESTING` provide the paths to the channels: + +``` python +import argparse +import os + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + + ... + + # reads input channels training and testing from the environment variables + parser.add_argument("--training", type=str, default=os.environ["SM_CHANNEL_TRAINING"]) + parser.add_argument("--testing", type=str, default=os.environ["SM_CHANNEL_TESTING"]) + + args = parser.parse_args() + + ... +``` + +When training starts, SageMaker Training Toolkit will print all available environment variables. Please see the [reference on environment variables](https://github.com/aws/sagemaker-training-toolkit/blob/master/ENVIRONMENT_VARIABLES.md) for a full list of provided environment variables. + +### Get information about the container environment + +To get information about the container environment, initialize an `Environment` object. +`Environment` provides access to aspects of the environment relevant to training jobs, including hyperparameters, system characteristics, filesystem locations, environment variables and configuration settings. +It is a read-only snapshot of the container environment during training, and it doesn't contain any form of state. + +``` python +from sagemaker_training import environment + +env = environment.Environment() + +# get the path of the channel "training" from the `inputdataconfig.json` file +training_dir = env.channel_input_dirs["training"] + +# get a the hyperparameter "training_data_file" from `hyperparameters.json` file +file_name = env.hyperparameters["training_data_file"] + +# get the folder where the model should be saved +model_dir = env.model_dir + +# train the model +data = np.load(os.path.join(training_dir, file_name)) +x_train, y_train = data["features"], keras.utils.to_categorical(data["labels"]) +model = ResNet50(weights="imagenet") +... +model.fit(x_train, y_train) + +#save the model to the model_dir at the end of training +model.save(os.path.join(model_dir, "saved_model")) +``` + +### Execute the entry point + +To execute the entry point, call `entry_point.run()`. + +``` python +from sagemaker_training import entry_point, environment + +env = environment.Environment() + +# read hyperparameters as script arguments +args = env.to_cmd_args() + +# get the environment variables +env_vars = env.to_env_vars() + +# execute the entry point +entry_point.run(uri=env.module_dir, + user_entry_point=env.user_entry_point, + args=args, + env_vars=env_vars) + +``` + +If the entry point execution fails, `trainer.train()` will write the error message to `/opt/ml/output/failure`. Otherwise, it will write to the file `/opt/ml/success`. + +## :scroll: License + +This library is licensed under the [Apache 2.0 License](http://aws.amazon.com/apache2.0/). +For more details, please take a look at the [LICENSE](https://github.com/aws/sagemaker-training-toolkit/blob/master/LICENSE) file. + +## :handshake: Contributing + +Contributions are welcome! +Please read our [contributing guidelines](https://github.com/aws/sagemaker-training-toolkit/blob/master/CONTRIBUTING.md) +if you'd like to open an issue or submit a pull request. + +%package -n python3-sagemaker-training +Summary: Open source library for creating containers to run on Amazon SageMaker. +Provides: python-sagemaker-training +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-sagemaker-training + + +# SageMaker Training Toolkit + +[](https://pypi.python.org/pypi/sagemaker-training) [](https://pypi.python.org/pypi/sagemaker-training) [](https://github.com/python/black) + +Train machine learning models within a Docker container using Amazon SageMaker. + + +## :books: Background + +[Amazon SageMaker](https://aws.amazon.com/sagemaker/) is a fully managed service for data science and machine learning (ML) workflows. +You can use Amazon SageMaker to simplify the process of building, training, and deploying ML models. + +To train a model, you can include your training script and dependencies in a [Docker container](https://www.docker.com/resources/what-container) that runs your training code. +A container provides an effectively isolated environment, ensuring a consistent runtime and reliable training process. + +The **SageMaker Training Toolkit** can be easily added to any Docker container, making it compatible with SageMaker for [training models](https://aws.amazon.com/sagemaker/train/). +If you use a [prebuilt SageMaker Docker image for training](https://docs.aws.amazon.com/sagemaker/latest/dg/pre-built-containers-frameworks-deep-learning.html), this library may already be included. + +For more information, see the Amazon SageMaker Developer Guide sections on [using Docker containers for training](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). + +## :hammer_and_wrench: Installation + +To install this library in your Docker image, add the following line to your [Dockerfile](https://docs.docker.com/engine/reference/builder/): + +``` dockerfile +RUN pip3 install sagemaker-training +``` + +## :computer: Usage + +The following are brief how-to guides. +For complete, working examples of custom training containers built with the SageMaker Training Toolkit, please see [the example notebooks](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/advanced_functionality/custom-training-containers). + +### Create a Docker image and train a model + +1. Write a training script (eg. `train.py`). + +2. [Define a container with a Dockerfile](https://docs.docker.com/get-started/part2/#define-a-container-with-dockerfile) that includes the training script and any dependencies. + + The training script must be located in the `/opt/ml/code` directory. + The environment variable `SAGEMAKER_PROGRAM` defines which file inside the `/opt/ml/code` directory to use as the training entry point. + When training starts, the interpreter executes the entry point defined by `SAGEMAKER_PROGRAM`. + Python and shell scripts are both supported. + + ``` docker + FROM yourbaseimage:tag + + # install the SageMaker Training Toolkit + RUN pip3 install sagemaker-training + + # copy the training script inside the container + COPY train.py /opt/ml/code/train.py + + # define train.py as the script entry point + ENV SAGEMAKER_PROGRAM train.py + ``` + +3. Build and tag the Docker image. + + ``` shell + docker build -t custom-training-container . + ``` + +4. Use the Docker image to start a training job using the [SageMaker Python SDK](https://github.com/aws/sagemaker-python-sdk). + + ``` python + from sagemaker.estimator import Estimator + + estimator = Estimator(image_name="custom-training-container", + role="SageMakerRole", + train_instance_count=1, + train_instance_type="local") + + estimator.fit() + ``` + + To train a model using the image on SageMaker, [push the image to ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) and start a SageMaker training job with the image URI. + + +### Pass arguments to the entry point using hyperparameters + +Any hyperparameters provided by the training job are passed to the entry point as script arguments. +The SageMaker Python SDK uses this feature to pass special hyperparameters to the training job, including `sagemaker_program` and `sagemaker_submit_directory`. +The complete list of SageMaker hyperparameters is available [here](https://github.com/aws/sagemaker-training-toolkit/blob/master/src/sagemaker_training/params.py). + +1. Implement an argument parser in the entry point script. For example, in a Python script: + + ``` python + import argparse + + if __name__ == "__main__": + parser = argparse.ArgumentParser() + + parser.add_argument("--learning-rate", type=int, default=1) + parser.add_argument("--batch-size", type=int, default=64) + parser.add_argument("--communicator", type=str) + parser.add_argument("--frequency", type=int, default=20) + + args = parser.parse_args() + ... + ``` + +2. Start a training job with hyperparameters. + + ``` python + {"HyperParameters": {"batch-size": 256, "learning-rate": 0.0001, "communicator": "pure_nccl"}} + ``` + +### Read additional information using environment variables + +An entry point often needs additional information not available in `hyperparameters`. +The SageMaker Training Toolkit writes this information as environment variables that are available from within the script. +For example, this training job includes the channels `training` and `testing`: + +``` python +from sagemaker.pytorch import PyTorch + +estimator = PyTorch(entry_point="train.py", ...) + +estimator.fit({"training": "s3://bucket/path/to/training/data", + "testing": "s3://bucket/path/to/testing/data"}) +``` + +The environment variables `SM_CHANNEL_TRAINING` and `SM_CHANNEL_TESTING` provide the paths to the channels: + +``` python +import argparse +import os + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + + ... + + # reads input channels training and testing from the environment variables + parser.add_argument("--training", type=str, default=os.environ["SM_CHANNEL_TRAINING"]) + parser.add_argument("--testing", type=str, default=os.environ["SM_CHANNEL_TESTING"]) + + args = parser.parse_args() + + ... +``` + +When training starts, SageMaker Training Toolkit will print all available environment variables. Please see the [reference on environment variables](https://github.com/aws/sagemaker-training-toolkit/blob/master/ENVIRONMENT_VARIABLES.md) for a full list of provided environment variables. + +### Get information about the container environment + +To get information about the container environment, initialize an `Environment` object. +`Environment` provides access to aspects of the environment relevant to training jobs, including hyperparameters, system characteristics, filesystem locations, environment variables and configuration settings. +It is a read-only snapshot of the container environment during training, and it doesn't contain any form of state. + +``` python +from sagemaker_training import environment + +env = environment.Environment() + +# get the path of the channel "training" from the `inputdataconfig.json` file +training_dir = env.channel_input_dirs["training"] + +# get a the hyperparameter "training_data_file" from `hyperparameters.json` file +file_name = env.hyperparameters["training_data_file"] + +# get the folder where the model should be saved +model_dir = env.model_dir + +# train the model +data = np.load(os.path.join(training_dir, file_name)) +x_train, y_train = data["features"], keras.utils.to_categorical(data["labels"]) +model = ResNet50(weights="imagenet") +... +model.fit(x_train, y_train) + +#save the model to the model_dir at the end of training +model.save(os.path.join(model_dir, "saved_model")) +``` + +### Execute the entry point + +To execute the entry point, call `entry_point.run()`. + +``` python +from sagemaker_training import entry_point, environment + +env = environment.Environment() + +# read hyperparameters as script arguments +args = env.to_cmd_args() + +# get the environment variables +env_vars = env.to_env_vars() + +# execute the entry point +entry_point.run(uri=env.module_dir, + user_entry_point=env.user_entry_point, + args=args, + env_vars=env_vars) + +``` + +If the entry point execution fails, `trainer.train()` will write the error message to `/opt/ml/output/failure`. Otherwise, it will write to the file `/opt/ml/success`. + +## :scroll: License + +This library is licensed under the [Apache 2.0 License](http://aws.amazon.com/apache2.0/). +For more details, please take a look at the [LICENSE](https://github.com/aws/sagemaker-training-toolkit/blob/master/LICENSE) file. + +## :handshake: Contributing + +Contributions are welcome! +Please read our [contributing guidelines](https://github.com/aws/sagemaker-training-toolkit/blob/master/CONTRIBUTING.md) +if you'd like to open an issue or submit a pull request. + +%package help +Summary: Development documents and examples for sagemaker-training +Provides: python3-sagemaker-training-doc +%description help + + +# SageMaker Training Toolkit + +[](https://pypi.python.org/pypi/sagemaker-training) [](https://pypi.python.org/pypi/sagemaker-training) [](https://github.com/python/black) + +Train machine learning models within a Docker container using Amazon SageMaker. + + +## :books: Background + +[Amazon SageMaker](https://aws.amazon.com/sagemaker/) is a fully managed service for data science and machine learning (ML) workflows. +You can use Amazon SageMaker to simplify the process of building, training, and deploying ML models. + +To train a model, you can include your training script and dependencies in a [Docker container](https://www.docker.com/resources/what-container) that runs your training code. +A container provides an effectively isolated environment, ensuring a consistent runtime and reliable training process. + +The **SageMaker Training Toolkit** can be easily added to any Docker container, making it compatible with SageMaker for [training models](https://aws.amazon.com/sagemaker/train/). +If you use a [prebuilt SageMaker Docker image for training](https://docs.aws.amazon.com/sagemaker/latest/dg/pre-built-containers-frameworks-deep-learning.html), this library may already be included. + +For more information, see the Amazon SageMaker Developer Guide sections on [using Docker containers for training](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). + +## :hammer_and_wrench: Installation + +To install this library in your Docker image, add the following line to your [Dockerfile](https://docs.docker.com/engine/reference/builder/): + +``` dockerfile +RUN pip3 install sagemaker-training +``` + +## :computer: Usage + +The following are brief how-to guides. +For complete, working examples of custom training containers built with the SageMaker Training Toolkit, please see [the example notebooks](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/advanced_functionality/custom-training-containers). + +### Create a Docker image and train a model + +1. Write a training script (eg. `train.py`). + +2. [Define a container with a Dockerfile](https://docs.docker.com/get-started/part2/#define-a-container-with-dockerfile) that includes the training script and any dependencies. + + The training script must be located in the `/opt/ml/code` directory. + The environment variable `SAGEMAKER_PROGRAM` defines which file inside the `/opt/ml/code` directory to use as the training entry point. + When training starts, the interpreter executes the entry point defined by `SAGEMAKER_PROGRAM`. + Python and shell scripts are both supported. + + ``` docker + FROM yourbaseimage:tag + + # install the SageMaker Training Toolkit + RUN pip3 install sagemaker-training + + # copy the training script inside the container + COPY train.py /opt/ml/code/train.py + + # define train.py as the script entry point + ENV SAGEMAKER_PROGRAM train.py + ``` + +3. Build and tag the Docker image. + + ``` shell + docker build -t custom-training-container . + ``` + +4. Use the Docker image to start a training job using the [SageMaker Python SDK](https://github.com/aws/sagemaker-python-sdk). + + ``` python + from sagemaker.estimator import Estimator + + estimator = Estimator(image_name="custom-training-container", + role="SageMakerRole", + train_instance_count=1, + train_instance_type="local") + + estimator.fit() + ``` + + To train a model using the image on SageMaker, [push the image to ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) and start a SageMaker training job with the image URI. + + +### Pass arguments to the entry point using hyperparameters + +Any hyperparameters provided by the training job are passed to the entry point as script arguments. +The SageMaker Python SDK uses this feature to pass special hyperparameters to the training job, including `sagemaker_program` and `sagemaker_submit_directory`. +The complete list of SageMaker hyperparameters is available [here](https://github.com/aws/sagemaker-training-toolkit/blob/master/src/sagemaker_training/params.py). + +1. Implement an argument parser in the entry point script. For example, in a Python script: + + ``` python + import argparse + + if __name__ == "__main__": + parser = argparse.ArgumentParser() + + parser.add_argument("--learning-rate", type=int, default=1) + parser.add_argument("--batch-size", type=int, default=64) + parser.add_argument("--communicator", type=str) + parser.add_argument("--frequency", type=int, default=20) + + args = parser.parse_args() + ... + ``` + +2. Start a training job with hyperparameters. + + ``` python + {"HyperParameters": {"batch-size": 256, "learning-rate": 0.0001, "communicator": "pure_nccl"}} + ``` + +### Read additional information using environment variables + +An entry point often needs additional information not available in `hyperparameters`. +The SageMaker Training Toolkit writes this information as environment variables that are available from within the script. +For example, this training job includes the channels `training` and `testing`: + +``` python +from sagemaker.pytorch import PyTorch + +estimator = PyTorch(entry_point="train.py", ...) + +estimator.fit({"training": "s3://bucket/path/to/training/data", + "testing": "s3://bucket/path/to/testing/data"}) +``` + +The environment variables `SM_CHANNEL_TRAINING` and `SM_CHANNEL_TESTING` provide the paths to the channels: + +``` python +import argparse +import os + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + + ... + + # reads input channels training and testing from the environment variables + parser.add_argument("--training", type=str, default=os.environ["SM_CHANNEL_TRAINING"]) + parser.add_argument("--testing", type=str, default=os.environ["SM_CHANNEL_TESTING"]) + + args = parser.parse_args() + + ... +``` + +When training starts, SageMaker Training Toolkit will print all available environment variables. Please see the [reference on environment variables](https://github.com/aws/sagemaker-training-toolkit/blob/master/ENVIRONMENT_VARIABLES.md) for a full list of provided environment variables. + +### Get information about the container environment + +To get information about the container environment, initialize an `Environment` object. +`Environment` provides access to aspects of the environment relevant to training jobs, including hyperparameters, system characteristics, filesystem locations, environment variables and configuration settings. +It is a read-only snapshot of the container environment during training, and it doesn't contain any form of state. + +``` python +from sagemaker_training import environment + +env = environment.Environment() + +# get the path of the channel "training" from the `inputdataconfig.json` file +training_dir = env.channel_input_dirs["training"] + +# get a the hyperparameter "training_data_file" from `hyperparameters.json` file +file_name = env.hyperparameters["training_data_file"] + +# get the folder where the model should be saved +model_dir = env.model_dir + +# train the model +data = np.load(os.path.join(training_dir, file_name)) +x_train, y_train = data["features"], keras.utils.to_categorical(data["labels"]) +model = ResNet50(weights="imagenet") +... +model.fit(x_train, y_train) + +#save the model to the model_dir at the end of training +model.save(os.path.join(model_dir, "saved_model")) +``` + +### Execute the entry point + +To execute the entry point, call `entry_point.run()`. + +``` python +from sagemaker_training import entry_point, environment + +env = environment.Environment() + +# read hyperparameters as script arguments +args = env.to_cmd_args() + +# get the environment variables +env_vars = env.to_env_vars() + +# execute the entry point +entry_point.run(uri=env.module_dir, + user_entry_point=env.user_entry_point, + args=args, + env_vars=env_vars) + +``` + +If the entry point execution fails, `trainer.train()` will write the error message to `/opt/ml/output/failure`. Otherwise, it will write to the file `/opt/ml/success`. + +## :scroll: License + +This library is licensed under the [Apache 2.0 License](http://aws.amazon.com/apache2.0/). +For more details, please take a look at the [LICENSE](https://github.com/aws/sagemaker-training-toolkit/blob/master/LICENSE) file. + +## :handshake: Contributing + +Contributions are welcome! +Please read our [contributing guidelines](https://github.com/aws/sagemaker-training-toolkit/blob/master/CONTRIBUTING.md) +if you'd like to open an issue or submit a pull request. + +%prep +%autosetup -n sagemaker-training-4.4.10 + +%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-sagemaker-training -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 4.4.10-1 +- Package Spec generated @@ -0,0 +1 @@ +7c37945755a2b9f0e79e17e0d4ad97ca sagemaker_training-4.4.10.tar.gz |
