Skip to content

Quick Start

This guide will help you get started with Nukat in just a few minutes.

The simplest way to search the NUKAT catalog:

from nukat import Nukat

client = Nukat()
results = client.search("Python programming")

for result in results:
    print(result['title'])

Command Line Usage

Nukat includes a CLI tool for quick searches:

# Basic search (returns first 10 results)
nukat "Python programming"

# Get more results
nukat "Python programming" --limit 50

# Get all results
nukat "Python programming" --all

Search with Filters

Filter results by publication year, language, etc.:

from nukat import Nukat

client = Nukat()

# Search for recent English books about Python
results = client.search(
    query="Python",
    year_from=2020,
    year_to=2024,
    language="eng",
    limit=20
)

for result in results:
    print(f"{result['title']} ({result.get('year')})")

Convenience Methods

Use specialized search methods for common queries:

# Search by author
results = client.search_by_author("Smith John")

# Search by title
results = client.search_by_title("Introduction to Python")

# Search by ISBN
results = client.search_by_isbn("978-0-123456-78-9")

# Search by subject
results = client.search_by_subject("Computer Science")

Get Record Details

Retrieve full details for a specific record:

# Using Python API
details = client.get_record_details("48685")
print(details)

# Using CLI
nukat 48685 --id

Working with Results

Search results are returned as dictionaries:

results = client.search("Python", limit=5)

for result in results:
    # Available fields
    title = result.get('title')
    author = result.get('author')
    year = result.get('year')
    publisher = result.get('publisher')
    place = result.get('place')
    doc_type = result.get('document_type')
    language = result.get('language')
    url = result.get('url')
    record_id = result.get('id')  # biblionumber

    print(f"{title} by {author} ({year})")

Pagination

Handle large result sets with pagination:

# Get all results (automatically handles pagination)
all_results = client.search_all("popular query")
print(f"Found {len(all_results)} total results")

# Limit total results
results = client.search_all("popular query", max_results=500)

Error Handling

Handle potential errors gracefully:

from nukat import Nukat, NukatError

client = Nukat()

try:
    results = client.search("test query")
    if not results:
        print("No results found")
    else:
        for result in results:
            print(result['title'])
except NukatError as e:
    print(f"Error: {e}")

Complete Example

Here's a complete example putting it all together:

from nukat import Nukat, NukatError

def search_recent_books(topic, min_year=2020):
    """Search for recent books on a topic."""
    client = Nukat()

    try:
        results = client.search(
            query=topic,
            year_from=min_year,
            document_type="BK",  # Books only
            limit=50
        )

        if not results:
            print(f"No results found for '{topic}'")
            return

        print(f"Found {len(results)} results:\n")

        for i, result in enumerate(results, 1):
            title = result.get('title', 'N/A')
            author = result.get('author', 'N/A')
            year = result.get('year', 'N/A')

            print(f"{i}. {title}")
            print(f"   Author: {author}")
            print(f"   Year: {year}")
            print(f"   ID: {result.get('id')}")
            print()

    except NukatError as e:
        print(f"Error occurred: {e}")

# Run the example
search_recent_books("artificial intelligence")

Next Steps