safim-scorer / eval_scripts /resource_limit.py
moreover's picture
first commit
acd4009
from dataclasses import dataclass, fields
@dataclass(kw_only=True)
class ResourceLimits:
core: int = 0 # RLIMIT_CORE
data: int = -1 # RLIMIT_DATA
# nice: int = 20 # RLIMIT_NICE
fsize: int = 0 # RLIMIT_FSIZE
sigpending: int = 0 # RLIMIT_SIGPENDING
# memlock: int = -1 # RLIMIT_MEMLOCK
rss: int = -1 # RLIMIT_RSS
nofile: int = 4 # RLIMIT_NOFILE
msgqueue: int = 0 # RLIMIT_MSGQUEUE
rtprio: int = 0 # RLIMIT_RTPRIO
stack: int = -1 # RLIMIT_STACK
cpu: int = 2 # RLIMIT_CPU, CPU time, in seconds.
nproc: int = 1 # RLIMIT_NPROC
_as: int = 2 * 1024 ** 3 # RLIMIT_AS set to 2GB by default
locks: int = 0 # RLIMIT_LOCKS
# rttime: int = 2 # RLIMIT_RTTIME, Timeout for real-time tasks.
def fields(self):
for field in fields(self):
yield field.name
if __name__ == "__main__":
limits = ResourceLimits()
prlimit_str = " ".join(
f"--{field.name[1:] if field.name.startswith('_') else field.name}={getattr(limits, field.name)}"
for field in fields(limits)
)
print(prlimit_str)