Skip to content

Commit 9da99eb

Browse files
cmccarthy1Conor McCarthy
and
Conor McCarthy
authored
Update to support Python 3.9 installations (#108)
* Update to p.q logic for handling sys.argv * reintroduction of old logic * addition of initial sys argv and embedpy version check * Update to initialisation logic for embedPy Co-authored-by: Conor McCarthy <[email protected]>
1 parent 185c34e commit 9da99eb

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

p.q

+9-6
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,22 @@
22

33
version:@[{EMBEDPYVERSION};0;`development];
44

5-
$[(.z.o like"w*");if[3.6>.z.K;'`$"kdb+ version must be 3.6+"];if[3.5>.z.K;'`$"kdb+ version must be 3.5+"]];
5+
o:first string .z.o;
6+
$[o="w";if[3.6>.z.K;'`$"kdb+ version must be 3.6+"];if[3.5>.z.K;'`$"kdb+ version must be 3.5+"]];
67
if[not .P.loaded:-1h=type@[`.p@;`numpy;`];
78
sc:{"'",x,"'.join([__import__('sysconfig').get_config_var(v)for v in",ssr[.j.j y;"\"";"'"],"])"};pr:{"print(",x,");"};
8-
c:"-c \"",pr["'.'.join([str(getattr(__import__('sys').version_info,x))for x in ['major','minor']])"],"\"2>",$[.z.o like"w*";"nul <nul";"/dev/null"];
9-
if[(.z.o like"w*")and `3.6>`$first@[system"python3 ",;c;{system"python ",c}];'"embedPy requires python 3.6 or higher on windows"];
10-
c:"-c \"",pr[$[.z.o like"w*";sc["/python";`BINDIR`VERSION],"+'.dll'";sc["/";`LIBDIR`INSTSONAME]]],pr[$[.z.o like"m*";sc["/";`PYTHONFRAMEWORKPREFIX`INSTSONAME];.z.o like"l*";sc["/libpython";`LIBDIR`LDVERSION],"+'.so'";"''"]],pr["__import__('sys').base_prefix"],pr["__import__('sys').prefix"],pr["__import__('sys').executable"],"\"2>",$[.z.o like"w*";"nul <nul";"/dev/null"];
11-
`L`M`H`P`B set'@[system"python3 ",;c;{system"python ",c}];if[count M;if[k~key k:`$":",M;L::M]];.P.env:not H~P;
9+
c:"-c \"",pr["'.'.join([str(getattr(__import__('sys').version_info,x))for x in ['major','minor']])"],"\"2>",$[o="w";"nul <nul";"/dev/null"];
10+
if[(o="w")and `3.6>`$first@[system"python3 ",;c;{system"python ",c}];'"embedPy requires python 3.6 or higher on windows"];
11+
c:"-c \"",pr[$[o="w";sc["/python";`BINDIR`VERSION];sc["/libpython";`LIBDIR`LDVERSION]],"+'",$[o="w";".dll";o="l";".so";".dylib"],"'"],pr["__import__('sys').base_prefix"],pr["__import__('sys').prefix"],pr["__import__('sys').executable"],"\"2>",$[o="w";"nul <nul";"/dev/null"];
12+
`L`H`P`B set'@[system"python3 ",;c;{system"python ",c}];
13+
.P.env:not H~P;
1214
.p:(`:./p 2:(`init;3))[L;H;B]]
1315
loaded:.P.loaded
1416
if[not loaded;
1517
ei:{eo y _ x;n set .p.get[n:`$(2+x)_(y?"(")#y]value y x;};
1618
eo:.p.e;
17-
e:{$["def"~3#x;$[x[3]in"<*>";ei 3;eo];"class"~5#x;$[x[5]in"*>";ei 5;eo];eo]x}];
19+
e:{$["def"~3#x;$[x[3]in"<*>";ei 3;eo];"class"~5#x;$[x[5]in"*>";ei 5;eo];eo]x}
20+
];
1821
k)c:{'[y;x]}/|: / compose list of functions
1922
k)ce:{'[y;x]}/enlist,|: / compose with enlist (for variadic functions)
2023

0 commit comments

Comments
 (0)