functiontrace 0.3.7__tar.gz → 0.3.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: functiontrace
3
- Version: 0.3.7
3
+ Version: 0.3.10
4
4
  Summary: A profiling tool that traces your application's execution
5
5
  Author: Alistair Dobke
6
6
  Author-email: Matt Bryant <functiontrace@programsareproofs.com>
@@ -16,7 +16,7 @@ Classifier: Environment :: Console
16
16
  Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Programming Language :: Python :: 3 :: Only
18
18
  Classifier: Programming Language :: Python :: Implementation :: CPython
19
- Requires-Python: <3.12,>=3.6
19
+ Requires-Python: >=3.7
20
20
  Description-Content-Type: text/x-rst
21
21
 
22
22
  Py-Functiontrace
@@ -804,6 +804,14 @@ static PyObject* Fprofile_StartTrace(PyObject* obj, PyObject* args, PyObject* kw
804
804
  }
805
805
  }
806
806
 
807
+ if (moduleConfiguration.pid != 0) {
808
+ // This can be triggered by running `functiontrace.begin_tracing()`
809
+ // from inside a process that's already being traced.
810
+ // We'll fail in this situation, but might as well print a mildly
811
+ // helpful error message here.
812
+ perror("Functiontrace doubly initialized! Aborting.");
813
+ exit(-1);
814
+ }
807
815
  moduleConfiguration.pid = getpid();
808
816
 
809
817
  // Mark that we'll need to forget some information on forks. In
@@ -1099,4 +1107,3 @@ static void Fprofile_ResetThreadState(void) {
1099
1107
  moduleConfiguration.pid = getpid();
1100
1108
  Fprofile_CreateThreadState();
1101
1109
  }
1102
-
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: functiontrace
3
- Version: 0.3.7
3
+ Version: 0.3.10
4
4
  Summary: A profiling tool that traces your application's execution
5
5
  Author: Alistair Dobke
6
6
  Author-email: Matt Bryant <functiontrace@programsareproofs.com>
@@ -16,7 +16,7 @@ Classifier: Environment :: Console
16
16
  Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Programming Language :: Python :: 3 :: Only
18
18
  Classifier: Programming Language :: Python :: Implementation :: CPython
19
- Requires-Python: <3.12,>=3.6
19
+ Requires-Python: >=3.7
20
20
  Description-Content-Type: text/x-rst
21
21
 
22
22
  Py-Functiontrace
@@ -41,7 +41,7 @@ def setup_dependencies():
41
41
  # Generate wrappers for the various Python versions we support to ensure
42
42
  # they're included in our PATH.
43
43
  wrap_pythons = ["python", "python3"] + [
44
- "python3.{}".format(minor) for minor in range(6, 12)
44
+ "python3.{}".format(minor) for minor in range(6, 13)
45
45
  ]
46
46
  for python in wrap_pythons:
47
47
  with open(os.path.join(tempdir, python), "w") as f:
@@ -55,9 +55,7 @@ def main():
55
55
  "--trace-memory",
56
56
  "--trace_memory",
57
57
  action="store_true",
58
- help="""Trace
59
- memory allocations/frees when enabled. This may add
60
- tracing overhead, so is disabled by default.""",
58
+ help="Trace memory allocations/frees when enabled. This may add tracing overhead, so is disabled by default.",
61
59
  )
62
60
  parser.add_argument(
63
61
  "--output-dir",
@@ -66,6 +64,12 @@ def main():
66
64
  default=os.getcwd(),
67
65
  help="The directory to output trace files to",
68
66
  )
67
+ parser.add_argument(
68
+ "--no-compression",
69
+ "--no_compression",
70
+ action="store_true",
71
+ help="Disable compression of traces, which can be unnecessarily slow if filesize is not a concern.",
72
+ )
69
73
  parser.add_argument(
70
74
  "-v", "--version", action="version", version=_functiontrace.__version__
71
75
  )
@@ -107,6 +111,8 @@ def main():
107
111
  setup_dependencies()
108
112
 
109
113
  # Setup our tracing environment, including configuring tracing features.
114
+ if args.no_compression:
115
+ os.environ["FUNCTIONTRACE_COMPRESSION"] = "false"
110
116
  if args.trace_memory:
111
117
  _functiontrace.config_tracememory()
112
118
  _functiontrace.begin_tracing(args.output_dir)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "functiontrace"
3
- version = "0.3.7"
3
+ version = "0.3.10"
4
4
  description = "A profiling tool that traces your application's execution"
5
5
  authors = [
6
6
  { name = "Matt Bryant", email = "functiontrace@programsareproofs.com"},
@@ -8,7 +8,13 @@ authors = [
8
8
  ]
9
9
  license = { text = "The Prosperity Public License 3.0.0" }
10
10
  readme = "README.rst"
11
- requires-python = ">=3.6,<3.12"
11
+ # NOTE: Actively tested on Python 3.7 - 3.12 and may plausibly break on greater
12
+ # versions due to C extension hacks. However, setting a maximum version causes
13
+ # new Python versions to simply install very old versions of Functiontrace that
14
+ # didn't have the `requires-python` annotation on them and are also unlikely to
15
+ # work. Best to only set the minimum and let bug reports notify us of issues
16
+ # with new Python releases.
17
+ requires-python = ">=3.7"
12
18
  keywords = [
13
19
  "profiler",
14
20
  "debugger"
File without changes
File without changes
File without changes