Есть много мест, где мы могли бы использовать Pathlib.
Найдите места, где используется with open(...)
и спросите себя:
Path()
,Не пытайтесь откусить больше, чем вы можете прожевать (или больше, чем я могу повторить), старайтесь исправить одно место за раз.
например, см. https://github.com/ipython/ipython/pull/12512
Привет @Carreau , если никто не работает над /core/page.py для использования Pathlib, могу ли я принять это участие?
Привет @Carreau , если никто не работает над /core/page.py для использования Pathlib, могу ли я принять это участие?
Конечно, пожалуйста. Благодарю.
Привет, я хотел бы поработать над core / interactiveshell.py и добавить туда еще больше возможностей Pathlib.
Могу я помочь с этим?
Привет, @Carreau, могу я взять на себя тестирование / iptestcontroller.py и core / magics / execution.py?
Также может быть полезно: https://docs.python.org/3/library/pathlib.html#correspondence -to-tools-in-the-os-module
Есть много других мест, кроме with open()
, в которых может использоваться обработка pathlib:
- conda_history = os.path.join(sys.prefix, 'conda-meta', 'history')
- return os.path.exists(conda_history)
+ return Path(sys.prefix, 'conda-meta', 'history').exists()
Неплохо подмечено.
Сб, 10 октября 2020 г., в 20:33 Blazej Michalik [email protected]
написал:
Также может пригодиться:
https://docs.python.org/3/library/pathlib.html#correspondence -to-tools-in-the-os-moduleЕсть много мест, кроме open (), которые могут использовать pathlib
лечение:
- conda_history = os.path.join (sys.prefix, 'conda-meta', 'history') - вернуть os.path.exists (conda_history) + return Path (sys.prefix, 'conda-meta', 'history') .существуют()
-
Вы получили это, потому что оставили комментарий.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ipython/ipython/issues/12515#issuecomment-706630653 ,
или отписаться
https://github.com/notifications/unsubscribe-auth/ADMY5F73MJDQ6CL32KEUZS3SKD4LXANCNFSM4QNPWX2Q
.
Также может быть полезно: https://docs.python.org/3/library/pathlib.html#correspondence -to-tools-in-the-os-module
Есть много других мест, кроме
with open()
, в которых может использоваться обработка pathlib:
Хотя ... некоторые из них могут быть менее тривиальными и более подверженными ошибкам, особенно когда они интерпретируются как текст. Например, при возврате объекта PosixPath
прерывается код в указанной выше области, поскольку он обрабатывается ' '.join()
с другими аргументами оболочки.
Есть еще места, где можно это исправить? Похоже, над этим работает много людей.
изменить: нашел, неважно
Есть еще места, где можно это исправить? Похоже, над этим работает много людей.
Я медленно проверяю PR и объединяю их, не уверен, остались ли еще места.
Есть и другие вещи, которые вы можете попробовать; найдите все места, где используется cast_unicode / cast_bytes, и посмотрите, можно ли их удалить. Многие из них связаны со старой совместимостью с Python 2.
например есть
def find_file(obj) -> str:
...
fname = None
try:
fname = inspect.getabsfile(obj)
except TypeError:
# For an instance, the file that matters is where its class was
# declared.
if hasattr(obj, '__class__'):
try:
fname = inspect.getabsfile(obj.__class__)
except TypeError:
# Can happen for builtins
pass
except:
pass
return cast_unicode(fname)
Если вы можете доказать, что inspect.getabsfil
всегда возвращает str, а не байты, тогда cast_unicode
не требуется. Это немного больше работы, но это немного очистит кодовую базу.
Я искал функции по всему проекту и нашел их много. Должен ли я рассмотреть вопрос о замене всех из них альтернативами Pathlib или в каких файлах мне следует подумать, не заменяя функции?
Извините, если я не смог заставить вас понять, что я хочу сказать.
Я работаю над paths.py
и обнаружил следующую строку в нескольких функциях:
assert isinstance(ipdir, str)
Одно из таких утверждений дает сообщение "all path manipulation should be str(unicode), but are not."
.
Должен ли я удалить такие строки, чтобы переход к pathlib работал?
Я работаю над
paths.py
и обнаружил следующую строку в нескольких функциях:assert isinstance(ipdir, str)
Одно из таких утверждений дает сообщение
"all path manipulation should be str(unicode), but are not."
.Должен ли я удалить такие строки, чтобы переход к pathlib работал?
Да, некоторые места не работают из-за этого.
Привет всем, я пытаюсь просмотреть все PR, есть много решения этих проблем, будьте осторожны, некоторые из вас отправляют изменения, для которых уже открыты другие PR.
Почему сейчас это закрыто?
@meeseeksdev открыть
Оууу, извини, Эшвинвис, похоже, тебе не разрешено это делать, спросите у сопровождающего репозитория.
Я новичок в вкладе с открытым исходным кодом и хотел бы поработать над этим вопросом. Каким будет самый простой способ протестировать код перед созданием PR после того, как я внесу свои изменения?
Я новичок в вкладе с открытым исходным кодом и хотел бы поработать над этим вопросом. Каким будет самый простой способ протестировать код перед созданием PR после того, как я внесу свои изменения?
Привет @squarebat
Вам следует сделать это:
$ pip3 install -e .[test]
$ iptest
Я хочу работать над файлом test_run.py
. Однако у меня возникают проблемы с исправлением некоторых ошибок в этом файле. Две основные ошибки:
undefined variable get_ipython
(Эта проблема решается добавлением импорта, но это кажется неправильным)
undefined variable _ip
: в некоторых функциях _ip
инициализируется как _ip = get_ipython()
следовательно, определяет его, но в других функциях он не инициализируется, что вызывает ошибку.
Я настроил свою среду, используя pip install .
Я просто хотел знать, сделал ли я ошибку при настройке среды или есть ошибка в файле test_run.py
.
Я настроил свою среду, используя
pip install
Вы должны использовать pip install -e .[test]
-e
означает, что вы устанавливаете его в редактируемом режиме.
Здравствуйте! Я впервые участвую в проекте с открытым исходным кодом, я хотел бы поработать над этим вопросом.
могу ли я получить назначение?
Самый полезный комментарий
Привет всем, я пытаюсь просмотреть все PR, есть много решения этих проблем, будьте осторожны, некоторые из вас отправляют изменения, для которых уже открыты другие PR.