Наверняка вы замечали, что в Python есть удобная функция для получения переменной окружения
os.getenv(NAME)
И её "сестра" для создания или изменения переменных окружения
os.putenv(NAME, VALUE)
Но почему-то putenv() не работает как должно. Энвайромент не обновляется!
os.putenv('MYVAR', '1')
print(os.getenv('MYVAR'))
... и ничего 😴
Почему так?
На самом деле энвайромент обновляется, но это значение не добавляется в словарь os.environ.
Откройте исходник функции os.getenv(). Это просто шорткат для os.environ.get()
В то время как putenv() это built-in С-функция.
Словарь os.environ (или точней класс из MutableMapping) создаётся из энвайромента в момент инициализации. Функция putenv() самостоятельно его не изменяет.
В тоже время, когда вы создаёте или изменяете ключ в os.environ, автоматически вызывается putenv() в методе __setitem__().
То есть, технически putenv() всё делает верно, но в os.environ это не отражается. Можно проверить так:
>>> os.putenv('MYVAR', '123')
>>> os.system('python -c "import os;print(os.getenv(\'MYVAR\'))"')
123
Я объявил переменную в текущем процессе и вызвал дочерний процесс, который её унаследовал и получил в составе os.environ.
Аналогично при удалении переменной вызывается еще одна built-in функция unsetenv(), удаляющая переменную из системы.
Итого
▫️ Удобней всего явно обновлять переменные через os.environ
▫️ Есть способ неявно создать/удалить переменную через putenv/unsetenv, что не повлияет на os.environ но изменит энвайромент и передаст изменения сабпроцессам. Но так лучше не делать!
▫️os.environ это просто обертка для built-in функций putenv() и unsetenv().
#basic
💰#APT Aptos announces about a major update to tokenomics.
The APY from staking has been reduced to 2.6%, the gas fee has been increased by 10 times, and a hard cap of 2.1 billion APT has been established.
The Fund will permanently block 210 million APT. The team is also exploring the possibility of a buyback program and expects the new decentralized exchange (DEX) to burn more than 32 million APT annually once it launches.
#APT/USDT analysis :
#APT is currently in a bearish trend, trading below the 200 EMA and consistently creating new lows. The price has rejected from both the 200 EMA and the resistance zone. It is expected to continue its bearish momentum and test lower levels.
TF : 4h
Entry : $6.00
Target : $4.32
SL : $7.14
⚙️#APT Aptos меняет токеномику.
Команда проекта объявила о переходе к новой модели – теперь эмиссия APT будет зависеть от реальной активности сети, а не раздаваться как субсидия.
Ключевые изменения:
➤ Награда за стейкинг снижается с 5,19% до 2,6%.
➤ Комиссии за газ увеличат в 10 раз (но все еще ~$0,00014 за перевод).
➤ Все комиссии сжигаются → чем больше активности, тем меньше APT в обращении.
➤ Появится жесткий лимит предложения – 2,1b APT.
➤ 210m APT навсегда заблокируют (фактически как сжигание).
➤ Гранты теперь только за результат (через KPI).
➤ Рассматривается запуск программы обратного выкупа токена APT с открытого рынка.
Ранее: голосование
Crypto Headlines
#APT/USDT analysis :
#APT is in an uptrend, currently experiencing an impulsive phase. It is anticipated that a correction phase will soon occur, leading the price to retrace and test the support zone. Following this test, a bounce back is expected, allowing the price to continue its impulsive move.
TF : 4H
Entry : $13.17
Target : $15.75
SL : $11.93