or run

tessl search
Log in

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/dnspython@1.16.x
tile.json

tessl/pypi-dnspython

tessl install tessl/pypi-dnspython@1.16.0

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

Agent Success

Agent success rate when using this tile

85%

Improvement

Agent success rate improvement when using this tile compared to baseline

1.37x

Baseline

Agent success rate without this tile

62%

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
    }
  ]
}