Repository navigation
Expand file tree
/
Copy pathNumSharp.Interop.pythonnet.csproj
More file actions
69 lines (60 loc) · 4.45 KB
/
Copy pathNumSharp.Interop.pythonnet.csproj
File metadata and controls
69 lines (60 loc) · 4.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0;net10.0</TargetFrameworks>
<AssemblyName>NumSharp.Interop.pythonnet</AssemblyName>
<RootNamespace>NumSharp.Interop.PythonNet</RootNamespace>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<LangVersion>latest</LangVersion>
<Nullable>disable</Nullable>
<!-- NuGet package (co-versioned with NumSharp: the version is the repo-root Directory.Build.props
VersionPrefix, never a number in this file, so the nuspec dependency on NumSharp and this
package's own version cannot drift apart). -->
<PackageId>NumSharp.Interop.pythonnet</PackageId>
<Authors>Eli Belash, Haiping Chen, Meinrad Recheis</Authors>
<Product>NumSharp</Product>
<Company>SciSharp STACK</Company>
<Copyright>2021 © SciSharp STACK Team</Copyright>
<Description>Zero-copy interop between NumSharp NDArray and the Python ecosystem via Python.NET (pythonnet). Converts NumSharp arrays to/from NumPy and PEP 3118 buffers; built-in PyTorch and Pandas adapters feed their official NumPy projections through the same memory bridge — no Numpy.NET or compile-time library dependency.</Description>
<PackageTags>NumSharp;NumPy;PyTorch;Torch;Pandas;DataFrame;Series;pythonnet;Python.NET;interop;buffer-protocol;scientific-computing;PEP3118</PackageTags>
<!-- The docs page is docs/interop/pythonnet-numpy.md (there is no interop/pythonnet.md), so the
nuget.org "Project website" link must point at the page that exists. -->
<PackageProjectUrl>https://scisharp.github.io/NumSharp/docs/interop/pythonnet-numpy.html</PackageProjectUrl>
<RepositoryUrl>https://github.com/SciSharp/NumSharp</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageReadmeFile>README.md</PackageReadmeFile>
<!-- Packed explicitly (`dotnet pack`), never on build: see the release workflow. License
acceptance and the icon are repo-wide settings in ../../Directory.Build.props. -->
<PackageOutputPath>../../packages</PackageOutputPath>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<!-- Symbols: embed the .pdb in the .nupkg (matches NumSharp.Core / NumSharp.Bitmap). The
release pipeline uploads/pushes only *.nupkg, so a separate .snupkg would be dropped. -->
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\LICENSE" Pack="true" PackagePath="\" />
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<!-- In-repo: ProjectReference (packs as a NuGet dependency on "NumSharp" $(Version)). -->
<ProjectReference Include="../NumSharp.Core/NumSharp.Core.csproj" />
<!-- The ONLY external dependency: pythonnet. NO Numpy / Numpy.Bare (avoids the CS0433 flavor clash
and the Python-version-coupled wheel pinning).
The range is BOTH knobs at once, and both matter:
(a) FLOOR = what we compile against. pythonnet is strong-named and bumps AssemblyVersion on
EVERY patch (3.0.0.0 ... 3.1.0.0). .NET rolls FORWARD silently but a downgrade is a hard
FileNotFoundException, so the compiled reference is the real minimum — measured:
compiled@3.0.0 -> runs on 3.0.0 / 3.0.5 / 3.1.0 OK
compiled@3.0.5 -> runs on 3.0.0 FileNotFoundException
(b) FLOOR = what a bare consumer installs. NuGet resolves LOWEST-applicable, never latest,
so whatever we put here IS the out-of-box experience — 3.1.0 on nuget.org is not picked.
3.0.5 is the floor because each pythonnet hard-caps the Python it can drive while
MinSupportedVersion has been 3.7 for the entire v3 line, making 3.0.5 (Python 3.7-3.13) a
strict SUPERSET of 3.0.0-3.0.4 (which cap at 3.10/3.11/3.12). Nothing is lost by requiring
it, and the previous 3.0.1 floor silently shipped a default that could not run Python 3.12+.
Python 3.14 needs 3.1.0 — allowed here, opt in with your own PackageReference.
The upper bound keeps a future pythonnet 4.x (which may break API) from being resolved into
consumers automatically. The source itself compiles clean against all of 3.0.0-3.1.0. -->
<PackageReference Include="pythonnet" Version="[3.0.5,4.0.0)" />
</ItemGroup>
</Project>