Skip to content

Commit

Permalink
Remove conflicting setuptools instructions (#435)
Browse files Browse the repository at this point in the history
Fixes some conflicting directives in the SmartSim packaging instructions:

- `setup.py` manually listed an incomplete list of packages to include in SmartSim while the
   `setup.cfg` was using`find_packages`. This commit defaults to `setup.cfg` with a slightly
   refined `include` directive.
- `setup.py` manually listed `package_data` directives while the `setup.cfg` set
   `include_package_data=True`. This commit keeps both strategies but lists both in the
    `setup.cfg`.
- In order to exclude the `__pycache__` created from SmartSim modules imported during the
   `setup.py` script, `__pycache__` and related files were explicitly ignored in the `MANIFEST.in`.
- In order to ensure the the `smartsim._core.launcher.local` package was found by `find_packages`
   without reverting to `find_namespace_packages` an `__init__.py` module was added to the directory.

[ committed by @MattToast ]
[ reviewed by @ankona @al-rigazzi ]
  • Loading branch information
MattToast authored Dec 13, 2023
1 parent 67785e1 commit 79e8ce5
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 17 deletions.
3 changes: 2 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
include Makefile
graft smartsim/

global-exclude __pycache__
global-exclude *.py[co]
8 changes: 6 additions & 2 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,15 @@ setup_requires =
include_package_data = True
python_requires = >=3.8,<3.11



[options.packages.find]
include =
smartsim*
exclude =
.third-party
tests
doc
smartredis

[options.package_data]
smartsim._core.bin =
*
4 changes: 0 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,10 +200,6 @@ def has_ext_modules(_placeholder):
setup(
version=smartsim_version,
install_requires=deps,
packages=["smartsim"],
package_data={"smartsim": [
"_core/bin/*",
]},
cmdclass={
"build_py": SmartSimBuild,
"install": InstallPlatlib,
Expand Down
25 changes: 25 additions & 0 deletions smartsim/_core/launcher/local/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# BSD 2-Clause License
#
# Copyright (c) 2021-2023, Hewlett Packard Enterprise
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
16 changes: 6 additions & 10 deletions smartsim/_core/launcher/local/local.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,14 @@
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

import os
import sys
import typing as t

from ..launcher import Launcher
from ....log import get_logger
from ....settings import RunSettings, SettingsBase
from ..step import LocalStep, Step
from ..stepInfo import UnmanagedStepInfo, StepInfo
from ..stepMapping import StepMapping
from ..taskManager import TaskManager
from ...utils.helpers import encode_cmd
from ...config import CONFIG


class LocalLauncher(Launcher):
Expand All @@ -53,7 +48,8 @@ def create_step(self, name: str, cwd: str, step_settings: SettingsBase) -> Step:
"""
if not isinstance(step_settings, RunSettings):
raise TypeError(
f"Local Launcher only supports entities with RunSettings, not {type(step_settings)}"
"Local Launcher only supports entities with RunSettings, "
f"not {type(step_settings)}"
)
return LocalStep(name, cwd, step_settings)

Expand All @@ -72,8 +68,8 @@ def get_step_update(
updates: t.List[t.Tuple[str, t.Optional[StepInfo]]] = []
s_names, s_ids = self.step_mapping.get_ids(step_names, managed=False)
for step_name, step_id in zip(s_names, s_ids):
status, rc, out, err = self.task_manager.get_task_update(str(step_id))
step_info = UnmanagedStepInfo(status, rc, out, err)
status, ret_code, out, err = self.task_manager.get_task_update(str(step_id))
step_info = UnmanagedStepInfo(status, ret_code, out, err)
update = (step_name, step_info)
updates.append(update)
return updates
Expand Down Expand Up @@ -130,8 +126,8 @@ def stop(self, step_name: str) -> UnmanagedStepInfo:
step_id = self.step_mapping[step_name].task_id

self.task_manager.remove_task(str(step_id))
_, rc, out, err = self.task_manager.get_task_update(str(step_id))
step_info = UnmanagedStepInfo("Cancelled", rc, out, err)
_, ret_code, out, err = self.task_manager.get_task_update(str(step_id))
step_info = UnmanagedStepInfo("Cancelled", ret_code, out, err)
return step_info

def __str__(self) -> str:
Expand Down

0 comments on commit 79e8ce5

Please sign in to comment.