Skip to main content

A Variable Monitoring Logger with C-Engine

Project description

vmlog

Python 프로그램 실행 중 변수의 값 변화를 자동으로 감지하고 기록하는 모니터링 라이브러리

PyPI version Python License: MIT


1. Overview

대규모 시스템이나 복잡한 알고리즘을 디버깅할 때 변수의 상태 변화를 확인하는 것은 필수적입니다. 그러나 일반적인 디버깅 방식은 다음과 같은 한계를 가집니다:

  • 코드 오염: 임시로 작성한 출력문(print)이 비즈니스 로직과 섞여 가독성을 해치고, 제거 누락 시 프로덕션 환경에 악영향을 줍니다.
  • 실행 흐름 방해: 대화형 디버거(PDB, IDE 디버거)는 루프나 고빈도 함수 내에서 실행을 멈추기 때문에 전체적인 시스템의 런타임 흐름을 유기적으로 관찰하기 어렵습니다.

vmlog는 이러한 문제를 해결하기 위해 런타임 오버헤드를 최소화한 백그라운드 실시간 변수 추적 아키텍처를 제공합니다. 사용자는 소스 코드 오염 없이 변수의 변경 여부를 자동으로 감지하고, 프로그램이 종료되는 시점에 수집된 모든 이력을 안전하게 디스크에 저장할 수 있습니다.


2. Features

  • 무결성 및 투명성 (Zero-Invasive): 최초 등록 이후 별도의 로그 매크로나 로깅 함수를 반복 호출할 필요가 없습니다. Python 고유의 실행 문법과 흐름을 100% 유지하며 백그라운드에서 추적합니다.
  • C Extension 기반 고성능 엔진: 파이썬 레벨에서 매 라인마다 거대한 객체를 비교하는 비효율을 극복하기 위해, 가변/불변 객체 판별 및 메모리 참조·크기 비교 연산을 C 확장 모듈(vmlog_engine)로 처리하여 런타임 오버헤드를 극소화했습니다.
  • 지연 쓰기 기반 I/O 최적화: 변수가 바뀔 때마다 디스크에 접근하는 대신, 스레드-세이프한 메모리 버퍼(HistoryBuffer)에 로그를 적재한 후 최종 시점에 일괄 파일로 출력하여 디스크 I/O 병목을 방지합니다.
  • 안전한 프로세스 생명주기 연동: 프로그램이 정상 종료되거나 예기치 못한 예외로 중단되더라도, 내부 atexit 런타임 훅이 자동으로 트리거되어 유실 없이 파일 생성을 보장합니다.
  • 지능적 스코프 해석 (Scope Resolution): 실행 프레임 분석기를 통해 동일한 이름의 로컬 변수와 글로벌 변수가 충돌하거나, 로컬 변수가 글로벌 변수를 가리는(Shadowing) 현상을 정확히 해석합니다.

3. Installation

vmlog는 고성능 변수 비교를 위해 C 확장 모듈 컴파일이 필요합니다. 아래 명령어를 통해 환경에 맞게 설치할 수 있습니다.

개발자 모드 설치 (추천)

소스 코드를 수정하거나 테스트 슈트를 직접 구동하려는 경우, C 확장 모듈 빌드를 포함하여 편집 가능한 모드로 설치합니다:

pip install -e .

일반 패키지 설치

빌드 후 현재 환경에 고정 설치하려는 경우

pip install .

C 확장 모듈 직접 빌드

python setup.py build_ext --inplace

요구 사항

  • Python 3.11 이상
  • C 컴파일러 (GCC, Clang, MSVC 등)

4. Usage

기본 사용법 (단일 변수 추적)

vmlog.logger 함수에 추적하고자 하는 변수의 이름을 문자열로 전달합니다.

import vmlog

# 1. 추적 대상 변수 생성
target_list = [100, 200]

# 2. 감시 장치 등록 (이 시점에 'init' 이벤트가 기록됩니다)
vmlog.logger("target_list")

# 3. 변수 조작 (인플레이스 변경 및 재할당 모두 자동 감지)
target_list.append(300)

# 4. 변수 삭제 감지
del target_list

# 추가적인 라인이 실행되거나 프로그램이 종료될 때 상기 변경점들이 자동으로 기록됩니다.

고급 사용법

vmlog.VMlog 클래스를 인스턴스화하여 여러 개의 로컬/글로벌 변수를 동시에 모니터링하고 저장 파일명을 직접 지정할 수 있습니다.

import vmlog

# 커스텀 로그 파일명을 지정하여 모니터 인스턴스 생성
monitor = vmlog.VMlog(fileName="analytics_dump.jsonl")

user_score = 10
active_items = ["potion", "shield"]

# 복수의 변수를 하나의 모니터에 등록
monitor.logger("user_score")
monitor.logger("active_items")

# 값 업데이트 진행
user_score += 55
active_items.append("sword")

vmlog.logger("변수명") 또는 VMlog 인스턴스의 .logger() 메서드로 등록된 변수는 별도 조작 없이 생명주기 동안 자동으로 추적됩니다.
기존 Python 문법과 런타임 실행 흐름을 100% 유지합니다.


5. 로그 형식

로그는 JSON Lines(.jsonl) 형식으로 저장됩니다.
하나의 JSON 객체는 하나의 변수 변경 이력을 의미합니다.

{"name": "target", "data": [1, 2, 3], "event": "init", "domain": "LOCAL", "line": 3}
{"name": "target", "data": [1, 2, 3, 4], "event": "updated", "domain": "LOCAL", "line": 5}
{"name": "target", "data": "String Assignment", "event": "updated", "domain": "LOCAL", "line": 6}
{"name": "target", "data": null, "event": "deleted", "domain": "LOCAL", "line": 7}
필드 타입 설명
name string 추적 중인 변수명
data any | null 변경 시점의 변수 값 (deleted 이벤트는 null)
event string init / updated / deleted
domain string 변수 스코프: LOCAL / GLOBAL
line int | null 변경이 감지된 소스 코드 라인 번호

이 형식은 대용량 로그 처리와 스트리밍 파싱에 적합합니다.


6. Architecture

Python tracer를 통해 실행 흐름을 관찰하고, 변수 변경 여부 판단은 C 엔진에 위임하여 성능을 유지합니다.

sequenceDiagram
    autonumber

    participant U as User Code (사용자)
    participant V as vmlog (Python 라이브러리)
    participant S as Python Subsystem (sys.settrace)
    participant C as C Engine (vmlog_engine.c)
    participant B as History Buffer (메모리 버퍼)
    participant F as JSONL File (디스크 저장)

    Note over U, S: [1. 초기화 및 감시 장치 등록]
    U->>V: vmlog.logger("변수명") 호출
    V->>V: ScopeResolver를 통해 최초 스코프(LOCAL/GLOBAL) 및 주소 분석
    V->>B: 최초 상태 적재 {event: "init", data: 현재값}
    V->>S: sys.settrace(TraceDispatcher) 글로벌 등록
    V->>S: atexit.register(_finalSave) 프로세스 훅 등록
    V-->>U: 감시 준비 완료 및 실행 재개

    Note over U, C: [2. 라인 실행 및 실시간 변수 변경 검사]
    loop 사용자 코드 실행 단계
        U->>U: 코드 순차 실행 (예: 객체 변형, 재할당 등)
        S->>V: 다음 행 실행 신호 전달 (f_trace 인터셉트)
        V->>C: check_variable(프레임, 이전참조, 이전스냅샷, 스코프, 변수명) 호출
        
        alt C 엔진 검사 결과: 주소 변경 혹은 내부 값 변경 (Return True)
            C-->>V: 변수 변경 확인 신호 리턴
            V->>B: {event: "updated", data: 신규값, line: f_lineno} 적재
            V->>V: VariableTracker 내부 스냅샷 및 참조 주소 갱신
        else C 엔진 검사 결과: 변경 없음 (Return False)
            C-->>V: 상태 유지 신호 리턴 (아무 작업 안 함 - 성능 보존)
        else C 엔진 검사 결과: 변수 scope 내 부재 (Return None)
            C-->>V: 변수 소멸 신호 리턴
            V->>B: {event: "deleted", data: null, line: f_lineno} 적재
            V->>V: 해당 변수 트래커 비활성화
        end
    end

    Note over U, F: [3. 프로세스 종료 및 자동 플러시]
    U->>S: 스크립트 실행 완료 혹은 인터럽트 발생 (종료)
    S->>V: atexit 트리거 발동
    V->>V: sys.settrace(None) 추적 해제 및 무한루프 방지
    V->>F: FileWriter를 호출하여 Buffer 내의 수집 이력을 JSONL로 일괄 생성

7. File Structure

.
├── .gitignore
├── LICENSE                          # MIT LICENSE
├── README.md
├── pyproject.toml
├── setup.py
├── tests/
│   ├── test.py                      # 테스트 러너 (unittest discover)
│   ├── test_logger.py               # 공개 API(vml.logger) 통합 테스트
│   ├── test_vml_behavior.py         # 변수 추적 동작 시나리오 테스트
│   ├── test_vml_components.py       # 내부 컴포넌트 단위 테스트
│   ├── test_vml_edge_cases.py       # 엣지 케이스 및 경계 조건 테스트
│   ├── test_vml_engine.py           # C Extension 엔진 단위 테스트
│   └── test_vml_process_lifecycle.py # atexit 기반 프로세스 생명주기 테스트
└── src/
    └── vmlog/                       # VML Package
        ├── __init__.py              # 공개 API 노출 (VML, logger, vml_engine)
        ├── vmlog.py                 # VML 메인 클래스 및 logger() 진입점
        ├── FileWriter.py            # JSONL 파일 I/O
        ├── HistoryBuffer.py         # 메모리 버퍼 관리 (domain, line 포함)
        ├── ScopeResolver.py         # 변수 스코프(LOCAL/GLOBAL) 탐색
        ├── TraceDispatcher.py       # 시스템 Trace 이벤트 라우팅 및 추적 관리
        ├── VariableTracker.py       # 개별 변수 상태 추적 및 스냅샷 관리
        └── vmlog_engine.c             # C Extension 변수 비교 엔진

8. Test

python tests/test.py

unittest discover 기반으로 tests/ 디렉토리의 모든 test_*.py 파일을 자동으로 수집하여 실행합니다.

test_final_save_is_idempotent (test_vml_components.TestVMLComponents) ... ok
test_file_writer_writes_json_lines (test_vml_components.TestVMLComponents) ... ok
test_history_buffer_clear (test_vml_components.TestVMLComponents) ... ok
test_history_buffer_returns_deepcopy (test_vml_components.TestVMLComponents) ... ok
test_scope_resolver_finds_global_variable (test_vml_components.TestVMLComponents) ... ok
test_scope_resolver_finds_local_variable_first (test_vml_components.TestVMLComponents) ... ok
test_scope_resolver_returns_not_found (test_vml_components.TestVMLComponents) ... ok
test_vml_records_deleted_event (test_vml_components.TestVMLComponents) ... ok
test_dispatcher_stop_prevents_further_tracking (test_vml_edge_cases.TestVMLEdgeCases) ... ok
test_local_variable_has_priority_over_global_name_collision (test_vml_edge_cases.TestVMLEdgeCases) ... ok
test_no_duplicate_update_when_value_does_not_change (test_vml_edge_cases.TestVMLEdgeCases) ... ok
test_tracks_common_scalar_and_tuple_reassignments (test_vml_edge_cases.TestVMLEdgeCases) ... ok
test_tracks_nested_mutable_object_change (test_vml_edge_cases.TestVMLEdgeCases) ... ok
test_unicode_data_is_written_without_corruption (test_vml_edge_cases.TestVMLEdgeCases) ... ok
test_returns_false_when_value_does_not_change (test_vml_engine.TestVMLEngine) ... ok
test_returns_none_when_variable_does_not_exist (test_vml_engine.TestVMLEngine) ... ok
test_returns_true_when_mutable_data_changes (test_vml_engine.TestVMLEngine) ... ok
test_returns_true_when_reference_changes (test_vml_engine.TestVMLEngine) ... ok
test_atexit_saves_log_without_manual_final_save (test_vml_process_lifecycle.TestVMLProcessLifecycle) ... ok
test_atexit_saves_multiple_variables_from_single_monitor (test_vml_process_lifecycle.TestVMLProcessLifecycle) ... ok
test_process_log_uses_jsonl_schema_after_exit (test_vml_process_lifecycle.TestVMLProcessLifecycle) ... ok
test_return_event_captures_last_change_inside_function (test_vml_process_lifecycle.TestVMLProcessLifecycle) ... ok
...

----------------------------------------------------------------------
Ran N tests in X.XXXs

OK

License

MIT © sdkurjnk

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vmlog-1.4.0.tar.gz (22.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

vmlog-1.4.0-cp313-cp313-win_amd64.whl (19.0 kB view details)

Uploaded CPython 3.13Windows x86-64

vmlog-1.4.0-cp313-cp313-win32.whl (18.6 kB view details)

Uploaded CPython 3.13Windows x86

vmlog-1.4.0-cp313-cp313-musllinux_1_2_x86_64.whl (25.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

vmlog-1.4.0-cp313-cp313-musllinux_1_2_i686.whl (25.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

vmlog-1.4.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (25.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

vmlog-1.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (24.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

vmlog-1.4.0-cp313-cp313-macosx_11_0_arm64.whl (16.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

vmlog-1.4.0-cp312-cp312-win_amd64.whl (19.0 kB view details)

Uploaded CPython 3.12Windows x86-64

vmlog-1.4.0-cp312-cp312-win32.whl (18.6 kB view details)

Uploaded CPython 3.12Windows x86

vmlog-1.4.0-cp312-cp312-musllinux_1_2_x86_64.whl (25.2 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

vmlog-1.4.0-cp312-cp312-musllinux_1_2_i686.whl (25.2 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

vmlog-1.4.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (25.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

vmlog-1.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (24.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

vmlog-1.4.0-cp312-cp312-macosx_11_0_arm64.whl (16.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

vmlog-1.4.0-cp311-cp311-win_amd64.whl (19.0 kB view details)

Uploaded CPython 3.11Windows x86-64

vmlog-1.4.0-cp311-cp311-win32.whl (18.6 kB view details)

Uploaded CPython 3.11Windows x86

vmlog-1.4.0-cp311-cp311-musllinux_1_2_x86_64.whl (24.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

vmlog-1.4.0-cp311-cp311-musllinux_1_2_i686.whl (24.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

vmlog-1.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (25.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

vmlog-1.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (24.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

vmlog-1.4.0-cp311-cp311-macosx_11_0_arm64.whl (16.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file vmlog-1.4.0.tar.gz.

File metadata

  • Download URL: vmlog-1.4.0.tar.gz
  • Upload date:
  • Size: 22.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vmlog-1.4.0.tar.gz
Algorithm Hash digest
SHA256 f050e3e0f5297604bd1d4f8fa4cb7e3d93860afd94e005eb025e73b8bb2c4e15
MD5 5e1bd791c3c2329cb978a5caf74fd776
BLAKE2b-256 7a24b4fdaa5a0065e30334ed8cc4618638751008c883d44363d0e5d25df83b12

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0.tar.gz:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: vmlog-1.4.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vmlog-1.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7f1ff1944311b77c4b026b2df4890c8228e06a8c36a6ad7c56b42e9133e7f3fb
MD5 436870c1ff61f7323eab9a65c3183d61
BLAKE2b-256 1708fa60bcfa4cbf56616346cbe849abdbebf2f27f76dd3e6ae35baec0afa5d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp313-cp313-win32.whl.

File metadata

  • Download URL: vmlog-1.4.0-cp313-cp313-win32.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vmlog-1.4.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 bafc6c4adf64b0883cafaf9abd85bc8f655bfc62905de6cefcf222dbe24f1386
MD5 018eb607e596e60054061bb795f7b8f9
BLAKE2b-256 4e6cce6aa4c04703a0bd04ceef56a1d017c98f05356b97c908e5ed2dd96c0d72

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp313-cp313-win32.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 91250d275bd4615ea50cf6afd7bd810dd7b99f68feb8b59c2d9dbccec272085d
MD5 934510a23b15b39233cee7c9607a6c78
BLAKE2b-256 515577b86c97fb02e4c0c3aa13629a8d45b80c11cbfd6bf9aa2fdc7c9c3b5ecb

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8f78d9e49d61af2cd391b6821616653785b007a0fa59458edbc0f62d64094c97
MD5 c8133d0dc2eb8a5d11910e1fef2b2d5f
BLAKE2b-256 8fe4bb49de1c73ed0716e57d7519f60526f5f2001fc86483b166603455ea2d38

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp313-cp313-musllinux_1_2_i686.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e634405a88775ea68cd6d793474e81184c2490d002a12c584eaa83d13977452f
MD5 9ae740d90888b7061f1bf7c536c657d0
BLAKE2b-256 7a3145376f90f0064c36f8c2ff3482df05fffd2c804f9ce0778c409aa8f0ebf3

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 296270aa7692a6c4ef746e590b7482c7600dc188655781e5403351aca9cf783e
MD5 9d7c2bede610ce3440076221acc0793f
BLAKE2b-256 f7ea54ad4f8375a1cd02fffc8f1299299ad31ff05cdba5e6ecfe8479f7ab4d19

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fbe47a3e856b252b2e92b69d6596b0360cfa6d3b1074968c7fe97eb89868a869
MD5 b8adc9580eb5b8172367916991ff86ec
BLAKE2b-256 73a306888acda4cc03d495eef956e91209eaf10314d4bbd776224b88cfc40214

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: vmlog-1.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vmlog-1.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f43760dd5ea37af792fa0590b5d0b5697f7db0c6a9fe699c7c22262828f8e98a
MD5 f03c5c559b693d50e5f85a79dc52edc6
BLAKE2b-256 e344df7911962433ccecfa604861745788c97c7fd044112de7d9e81286879e53

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: vmlog-1.4.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vmlog-1.4.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 12554ce13294ba3f18d45e027574c08306efa6076a093de4bf859c5cc1fa7c36
MD5 265bf58d4e92b3c52ff742b32a4c132c
BLAKE2b-256 ff7957dd488267b600ca9fa9171bfd68bb218bbe35557831802b3ac9113c3218

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp312-cp312-win32.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5438e139a6c542b20d72440d6fc192e538b57f072eb260d355de80dead9fde7c
MD5 00703fd9183c88a65cc9c403ca0c3038
BLAKE2b-256 21251326e0f104be1d4a391ea137db66712e0eb042e12060fd1fdcec7fc10832

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 2fed2f7725b868284fed5e39258a9451a48343bc853f7058f9964236c24ae7d8
MD5 bd56596bc5624a96edc27ca6fc7b8937
BLAKE2b-256 72969a0099292b71b11785d857290e14c2910993b5d8f7c23f3438a60387e1a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp312-cp312-musllinux_1_2_i686.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6b3ce32fb71f7cd113b231e7a933cd024b269a2d7623356c107a1a19d0808c2
MD5 0cf08f00ff500405e0ce948315b65fb4
BLAKE2b-256 b1245c4b426669750856559f27b3ade36d151b6e06f559731d882724f302653f

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b3dba3500473733a4c3f270f3d02d596b3c766a4dbdd3fe30d1386b42adf4553
MD5 c859fe7582aa85cf91b14e0147fd17ac
BLAKE2b-256 00f9f4c616b1c77e785bd2ab63dc0fc8c91399af42a30ebc39fcf1f214fd4341

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d5058ef517313e66215aeb5776dae49cfa28b430b760abed452df5a96f352a27
MD5 d643955eba067ea8677323fec793a492
BLAKE2b-256 24cb568211aa8224e6dcf3b8cf32a0287dcd69203bf220e319afacc09c6183e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: vmlog-1.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vmlog-1.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4798900be3724a9504ae0ad5afa8eb3bf97788b1d4287aa5c2aec0c9fa998e74
MD5 c982fa65c1b7c461128ce864325b47e8
BLAKE2b-256 5aecac8c252affd82a324e29e1d7d968d43008fa44c30359911709a0f955852e

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: vmlog-1.4.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vmlog-1.4.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 b1157487992cb7e2bda043d54e926f17304f8601848c7a5d803be70378ffccbb
MD5 e1ab1efc4ffd6c14bf7df5e04b1ba3d8
BLAKE2b-256 ce24246af91974c0ab18da4c1984f1d23ced6a9e489012f71d675c1532f53ffc

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp311-cp311-win32.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e56706e15f4f5ae5bee187d067c87f2c85469acda224bf02e3052b9e134f5501
MD5 5a532f71ff209a4e3331c157a202f12d
BLAKE2b-256 6ddc06729a4002f1a118c386337c7c040924a849a102cd67653ce3a1144dddba

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 49e1e43030d7a9b617a397526a2501e083c69154d292e1b3a8c28bcc0e041d58
MD5 b2a3ad508cc299b320a6e91351cf054c
BLAKE2b-256 f2f9e44868d72a12662d87e2eecb9cfd914083d0e16f0bdcd0b15e08ba9484c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp311-cp311-musllinux_1_2_i686.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3bba6fdc05e9f2ceb1760eb338e40c6a4d15baeff4764bad54f0aa22a295227c
MD5 e7d1fe2795e3b6c03110cce40e06e482
BLAKE2b-256 8ba3752fb29695b41f39cb061cd487b6d1a7726dce3649ed3e1a63ec431bb0ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5e1238c012cbf44bf6f3dce17b40e4180fb9abf627e3579b8bed403be83f0377
MD5 0acc6c17fd3d8a18037aba589b85555e
BLAKE2b-256 7268576ce5eec706798bbd6bb6ffe4843055557124f4f3608786c37b90c0da1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmlog-1.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vmlog-1.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 47a16484c1d9c4fa28fb083a9e2a6babaa43c0d42d86c2eda982033a89f873a5
MD5 8fbd4dd56d95b88ee2ee8269234ebb06
BLAKE2b-256 cc8e8fe7e77570d51f8963837e3fb88cf08beebd6d9332b105f4e95ec564938d

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmlog-1.4.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on sdkurjnk/VariableMonitoringLogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page