FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
ipython/IPython/paths.py at python-3.14-dev · krassowski/ipython · GitHub
krassowski
ipython
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
ipython
/
IPython
/
paths.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
122 lines (99 loc) · 4.03 KB
Breadcrumbs
ipython
/
IPython
/
paths.py
Copy path
File metadata and controls
122 lines (99 loc) · 4.03 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
"""Find files and directories which IPython uses.
"""
import
os
.
path
import
tempfile
from
warnings
import
warn
import
IPython
from
IPython
.
utils
.
importstring
import
import_item
from
IPython
.
utils
.
path
import
(
get_home_dir
,
get_xdg_dir
,
get_xdg_cache_dir
,
compress_user
,
_writable_dir
,
ensure_dir_exists
,
)
def
get_ipython_dir
()
->
str
:
"""Get the IPython directory for this platform and user.
This uses the logic in `get_home_dir` to find the home directory
and then adds .ipython to the end of the path.
"""
env
=
os
.
environ
pjoin
=
os
.
path
.
join
ipdir_def
=
'.ipython'
home_dir
=
get_home_dir
()
xdg_dir
=
get_xdg_dir
()
ipdir
=
env
.
get
(
"IPYTHONDIR"
,
None
)
if
ipdir
is
None
:
# not set explicitly, use ~/.ipython
ipdir
=
pjoin
(
home_dir
,
ipdir_def
)
if
xdg_dir
:
# Several IPython versions (up to 1.x) defaulted to .config/ipython
# on Linux. We have decided to go back to using .ipython everywhere
xdg_ipdir
=
pjoin
(
xdg_dir
,
'ipython'
)
if
_writable_dir
(
xdg_ipdir
):
cu
=
compress_user
if
os
.
path
.
exists
(
ipdir
):
warn
((
'Ignoring {0} in favour of {1}. Remove {0} to '
'get rid of this message'
).
format
(
cu
(
xdg_ipdir
),
cu
(
ipdir
)))
elif
os
.
path
.
islink
(
xdg_ipdir
):
warn
((
'{0} is deprecated. Move link to {1} to '
'get rid of this message'
).
format
(
cu
(
xdg_ipdir
),
cu
(
ipdir
)))
else
:
ipdir
=
xdg_ipdir
ipdir
=
os
.
path
.
normpath
(
os
.
path
.
expanduser
(
ipdir
))
if
os
.
path
.
exists
(
ipdir
)
and
not
_writable_dir
(
ipdir
):
# ipdir exists, but is not writable
warn
(
"IPython dir '{0}' is not a writable location,"
" using a temp directory."
.
format
(
ipdir
))
ipdir
=
tempfile
.
mkdtemp
()
elif
not
os
.
path
.
exists
(
ipdir
):
parent
=
os
.
path
.
dirname
(
ipdir
)
if
not
_writable_dir
(
parent
):
# ipdir does not exist and parent isn't writable
warn
(
"IPython parent '{0}' is not a writable location,"
" using a temp directory."
.
format
(
parent
))
ipdir
=
tempfile
.
mkdtemp
()
else
:
os
.
makedirs
(
ipdir
,
exist_ok
=
True
)
assert
isinstance
(
ipdir
,
str
),
"all path manipulation should be str(unicode), but are not."
return
ipdir
def
get_ipython_cache_dir
()
->
str
:
"""Get the cache directory it is created if it does not exist."""
xdgdir
=
get_xdg_cache_dir
()
if
xdgdir
is
None
:
return
get_ipython_dir
()
ipdir
=
os
.
path
.
join
(
xdgdir
,
"ipython"
)
if
not
os
.
path
.
exists
(
ipdir
)
and
_writable_dir
(
xdgdir
):
ensure_dir_exists
(
ipdir
)
elif
not
_writable_dir
(
xdgdir
):
return
get_ipython_dir
()
return
ipdir
def
get_ipython_package_dir
()
->
str
:
"""Get the base directory where IPython itself is installed."""
ipdir
=
os
.
path
.
dirname
(
IPython
.
__file__
)
assert
isinstance
(
ipdir
,
str
)
return
ipdir
def
get_ipython_module_path
(
module_str
):
"""Find the path to an IPython module in this version of IPython.
This will always find the version of the module that is in this importable
IPython package. This will always return the path to the ``.py``
version of the module.
"""
if
module_str
==
'IPython'
:
return
os
.
path
.
join
(
get_ipython_package_dir
(),
'__init__.py'
)
mod
=
import_item
(
module_str
)
the_path
=
mod
.
__file__
.
replace
(
'.pyc'
,
'.py'
)
the_path
=
the_path
.
replace
(
'.pyo'
,
'.py'
)
return
the_path
def
locate_profile
(
profile
=
'default'
):
"""Find the path to the folder associated with a given profile.
I.e. find $IPYTHONDIR/profile_whatever.
"""
from
IPython
.
core
.
profiledir
import
ProfileDir
,
ProfileDirError
try
:
pd
=
ProfileDir
.
find_profile_dir_by_name
(
get_ipython_dir
(),
profile
)
except
ProfileDirError
as
e
:
# IOError makes more sense when people are expecting a path
raise
IOError
(
"Couldn't find profile %r"
%
profile
)
from
e
return
pd
.
location
Back
|
FazBrowse Home
|
New Git URL