CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-dnspython

DNS toolkit for Python supporting almost all record types with high-level and low-level DNS operations

85

1.37x
Overview
Eval results
Files

rubric.jsonevals/scenario-4/

{
  "context": "Evaluates how well the solution uses dnspython's thread-safe resolver, cache, and immutable data handling to deliver concurrent DNS lookups with per-call timeout control.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Shared resolver",
      "description": "Builds a single reusable dns.resolver.Resolver (or dns.asyncresolver.Resolver) instance rather than creating one per call, wiring all lookups through it.",
      "max_score": 20
    },
    {
      "name": "Thread-safe cache",
      "description": "Configures the resolver with a package cache (dns.resolver.Cache or dns.resolver.LRUCache) and uses it for positive responses instead of ad-hoc dicts or per-call caches.",
      "max_score": 20
    },
    {
      "name": "Immutable results",
      "description": "Converts resolver answers (e.g., RRset/Rdata objects) into immutable tuples or strings via dnspython accessors like .to_text(), avoiding returning mutable Message/Answer objects across threads.",
      "max_score": 15
    },
    {
      "name": "Negative caching",
      "description": "Relies on dnspython's cache to store NXDOMAIN/NoAnswer results (using resolver.cache or Cache.store) so repeated misses before TTL expiry avoid repeat wire queries.",
      "max_score": 15
    },
    {
      "name": "Timeout override",
      "description": "Passes per-call lifetime/timeout parameters to resolver.resolve (or asyncresolve) to enforce call-specific limits without mutating the resolver's default timeout for later calls.",
      "max_score": 15
    },
    {
      "name": "Concurrent safety",
      "description": "Follows dnspython threading guidance by not sharing mutable Message/Zone objects between threads and by reusing immutable Name/rdata data or per-call copies when populating caches.",
      "max_score": 15
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl/pypi-dnspython

tile.json