Skip to content

Commit a59883b

Browse files
authored
Reorganize sources (#85)
* File structure: * src/*.* contains glue code to define the extension module * src/scorepy contains namespaced implementation * Rename instrumenters to _instrumenters to show it is private * Use Py_RETURN_NONE macro
1 parent d7bae30 commit a59883b

16 files changed

Lines changed: 386 additions & 348 deletions

CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
1010
find_package(Scorep REQUIRED)
1111
find_package(Python REQUIRED COMPONENTS Interpreter Development)
1212

13-
Python_add_library(scorep_bindings src/scorep.cpp)
14-
target_link_libraries(scorep_bindings PRIVATE Scorep::Scorep)
13+
Python_add_library(scorep_bindings
14+
src/methods.cpp src/scorep_bindings.cpp src/scorepy/events.cpp
15+
)
16+
target_link_libraries(scorep_bindings PRIVATE Scorep::Plugin)
1517
target_compile_features(scorep_bindings PRIVATE cxx_std_11)
1618
target_compile_definitions(scorep_bindings PRIVATE PY_SSIZE_T_CLEAN)
1719
target_include_directories(scorep_bindings PRIVATE src)
File renamed without changes.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
__all__ = ['ScorepDummy']
22

3-
import scorep.instrumenters.base_instrumenter as base_instrumenter
3+
import scorep._instrumenters.base_instrumenter as base_instrumenter
44

55

66
class ScorepDummy(base_instrumenter.BaseInstrumenter):

scorep/instrumenters/scorep_instrumenter.py renamed to scorep/_instrumenters/scorep_instrumenter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import abc
22
import inspect
33
import os
4-
from scorep.instrumenters import base_instrumenter
4+
from scorep._instrumenters import base_instrumenter
55
from scorep import scorep_bindings
66

77

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
__all__ = ['ScorepProfile']
22

33
import sys
4-
from scorep.instrumenters.utils import get_module_name, get_file_name
5-
from scorep.instrumenters.scorep_instrumenter import ScorepInstrumenter
4+
from scorep._instrumenters.utils import get_module_name, get_file_name
5+
from scorep._instrumenters.scorep_instrumenter import ScorepInstrumenter
66
from scorep import scorep_bindings
77

88
try:
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
__all__ = ['ScorepTrace']
22

33
import sys
4-
from scorep.instrumenters.utils import get_module_name, get_file_name
5-
from scorep.instrumenters.scorep_instrumenter import ScorepInstrumenter
4+
from scorep._instrumenters.utils import get_module_name, get_file_name
5+
from scorep._instrumenters.scorep_instrumenter import ScorepInstrumenter
66
from scorep import scorep_bindings
77

88
try:

scorep/instrumenter.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ def get_instrumenter(enable_instrumenter=False,
1616
global global_instrumenter
1717
if global_instrumenter is None:
1818
if instrumenter_type == "profile":
19-
from scorep.instrumenters.scorep_profile import ScorepProfile
19+
from scorep._instrumenters.scorep_profile import ScorepProfile
2020
global_instrumenter = ScorepProfile(enable_instrumenter)
2121
elif instrumenter_type == "trace":
22-
from scorep.instrumenters.scorep_trace import ScorepTrace
22+
from scorep._instrumenters.scorep_trace import ScorepTrace
2323
global_instrumenter = ScorepTrace(enable_instrumenter)
2424
elif instrumenter_type == "dummy":
25-
from scorep.instrumenters.dummy import ScorepDummy
25+
from scorep._instrumenters.dummy import ScorepDummy
2626
global_instrumenter = ScorepDummy(enable_instrumenter)
2727
else:
2828
raise RuntimeError('instrumenter_type "{}" unkown'.format(instrumenter_type))
@@ -58,6 +58,7 @@ class enable():
5858
This overides --no-instrumenter (--nopython leagacy)
5959
If a region name is given, the region the contextmanager is active will be marked in the trace or profile
6060
"""
61+
6162
def __init__(self, region_name=None):
6263
self.region_name = region_name
6364

@@ -99,6 +100,7 @@ class disable():
99100
This overides --no-instrumenter (--nopython leagacy)
100101
If a region name is given, the region the contextmanager is active will be marked in the trace or profile
101102
"""
103+
102104
def __init__(self, region_name=None):
103105
self.region_name = region_name
104106

setup.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@
2323
(include, _, _, _, _) = scorep.helper.generate_compile_deps()
2424
src_folder = os.path.abspath('src')
2525
include += [src_folder]
26+
sources = ['src/methods.cpp', 'src/scorep_bindings.cpp', 'src/scorepy/events.cpp']
27+
2628
cmodules.append(Extension('scorep.scorep_bindings',
2729
include_dirs=include,
2830
define_macros=[('PY_SSIZE_T_CLEAN', '1')],
2931
extra_compile_args=["-std=c++11"],
30-
sources=['src/scorep.cpp']))
32+
sources=sources))
3133

3234
setup(
3335
name='scorep',
@@ -42,7 +44,7 @@
4244
To enable tracing it uses LD_PRELOAD to load the Score-P runtime libraries.
4345
Besides this, it uses the traditional python-tracing infrastructure.
4446
''',
45-
packages=['scorep', 'scorep.instrumenters'],
47+
packages=['scorep', 'scorep._instrumenters'],
4648
ext_modules=cmodules,
4749
classifiers=[
4850
'Development Status :: 4 - Beta',

0 commit comments

Comments
 (0)