Class: DurableHuggingfaceHub::Types::DatasetInfo

Inherits:
Struct
  • Object
show all
Includes:
Loadable
Defined in:
lib/durable_huggingface_hub/types/dataset_info.rb

Overview

Information about a dataset repository on HuggingFace Hub.

This structure represents metadata about a dataset, including its ID, tags, files, statistics, and configuration.

Examples:

Creating a DatasetInfo from API response

dataset_info = DatasetInfo.from_hash({
  "id" => "squad",
  "sha" => "a1b2c3d4...",
  "tags" => ["question-answering", "en"],
  "downloads" => 500000
})

Accessing dataset information

dataset_info.id          # => "squad"
dataset_info.tags        # => ["question-answering", "en"]
dataset_info.downloads   # => 500000

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#authorString? (readonly)

Returns Author/organization name.

Returns:

  • (String, nil)

    Author/organization name



69
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 69

attribute :author, Types::OptionalString.default(nil)

#card_dataHash? (readonly)

Returns Dataset card metadata.

Returns:

  • (Hash, nil)

    Dataset card metadata



77
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 77

attribute :card_data, Types::OptionalHash.default(nil)

#citationString? (readonly)

Returns Citation information.

Returns:

  • (String, nil)

    Citation information



85
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 85

attribute :citation, Types::OptionalString.default(nil)

#created_atTime? (readonly)

Returns Repository creation timestamp.

Returns:

  • (Time, nil)

    Repository creation timestamp



73
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 73

attribute :created_at, Types::OptionalTimestamp.default(nil)

#descriptionString? (readonly)

Returns Dataset description.

Returns:

  • (String, nil)

    Dataset description



81
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 81

attribute :description, Types::OptionalString.default(nil)

#disabledBoolean? (readonly)

Returns Whether the repository is disabled.

Returns:

  • (Boolean, nil)

    Whether the repository is disabled



57
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 57

attribute :disabled, Types::OptionalBool.default(nil)

#downloadsInteger? (readonly)

Returns Total number of downloads.

Returns:

  • (Integer, nil)

    Total number of downloads



61
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 61

attribute :downloads, Types::OptionalInteger.default(nil)

#downloads_all_timeInteger? (readonly)

Returns Total number of downloads all time.

Returns:

  • (Integer, nil)

    Total number of downloads all time



89
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 89

attribute :downloads_all_time, Types::OptionalInteger.default(nil)

#gatedBoolean, ... (readonly)

Returns Gated access status.

Returns:

  • (Boolean, String, nil)

    Gated access status



53
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 53

attribute :gated, Types::OptionalGated.default(nil)

#idString (readonly)

Returns Dataset repository ID.

Returns:

  • (String)

    Dataset repository ID



29
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 29

attribute :id, Types::RepoId

#last_modifiedTime? (readonly)

Returns Timestamp of last modification.

Returns:

  • (Time, nil)

    Timestamp of last modification



37
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 37

attribute :last_modified, Types::OptionalTimestamp.default(nil)

#likesInteger? (readonly)

Returns Number of likes/stars.

Returns:

  • (Integer, nil)

    Number of likes/stars



65
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 65

attribute :likes, Types::OptionalInteger.default(nil)

#paperswithcode_idString? (readonly)

Returns PapersWithCode identifier.

Returns:

  • (String, nil)

    PapersWithCode identifier



93
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 93

attribute :paperswithcode_id, Types::OptionalString.default(nil)

#privateBoolean? (readonly)

Returns Whether the repository is private.

Returns:

  • (Boolean, nil)

    Whether the repository is private



49
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 49

attribute :private, Types::OptionalBool.default(nil)

#shaString? (readonly)

Returns Git commit SHA of the current revision.

Returns:

  • (String, nil)

    Git commit SHA of the current revision



33
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 33

attribute :sha, Types::OptionalString.default(nil)

#siblingsArray<Hash>? (readonly)

Returns List of files in the repository.

Returns:

  • (Array<Hash>, nil)

    List of files in the repository



45
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 45

attribute :siblings, Types::OptionalFileSiblings.default(nil)

#tagsArray<String> (readonly)

Returns Tags associated with the dataset.

Returns:

  • (Array<String>)

    Tags associated with the dataset



41
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 41

attribute :tags, Types::StringArray.default([].freeze)

Returns Trending score.

Returns:

  • (Integer, nil)

    Trending score



97
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 97

attribute :trending_score, Types::OptionalInteger.default(nil)

Class Method Details

.from_hash(data) ⇒ Object

Transform API response to filter out unknown keys



100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 100

def self.from_hash(data)
  transformed = data.dup

  # Filter out unknown keys to avoid dry-struct errors
  known_keys = [:id, :sha, :last_modified, :tags, :siblings, :private, :gated,
                :disabled, :downloads, :likes, :author, :created_at, :card_data,
                :description, :citation, :downloads_all_time, :paperswithcode_id,
                :trending_score,
                "id", "sha", "last_modified", "tags", "siblings", "private", "gated",
                "disabled", "downloads", "likes", "author", "created_at", "card_data",
                "description", "citation", "downloads_all_time", "paperswithcode_id",
                "trending_score"]
  transformed = transformed.select { |k, _| known_keys.include?(k) }

  new(transformed)
end

Instance Method Details

#disabled?Boolean

Checks if the repository is disabled.

Returns:

  • (Boolean)

    True if disabled



156
157
158
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 156

def disabled?
  disabled == true
end

#file_namesArray<String>

Returns File names.

Returns:

  • (Array<String>)

    File names



120
121
122
123
124
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 120

def file_names
  return [] if siblings.nil?

  siblings.map { |s| s[:rfilename] || s["rfilename"] }.compact
end

#gated?Boolean

Checks if the repository is gated.

Returns:

  • (Boolean)

    True if gated



144
145
146
147
148
149
150
151
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 144

def gated?
  case gated
  when true, "auto", "manual"
    true
  else
    false
  end
end

#has_tag?(tag) ⇒ Boolean

Checks if the dataset has a specific tag.

Parameters:

  • tag (String)

    Tag to check for

Returns:

  • (Boolean)

    True if the tag is present



130
131
132
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 130

def has_tag?(tag)
  tags.include?(tag)
end

#inspectString

Returns a detailed inspection string.

Returns:

  • (String)

    Inspection string



170
171
172
173
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 170

def inspect
  "#<#{self.class.name} id=#{id.inspect} sha=#{sha&.[](0, 7).inspect} " \
    "tags=#{tags.size} files=#{siblings&.size || 0}>"
end

#public?Boolean

Checks if the repository is public.

Returns:

  • (Boolean)

    True if public



137
138
139
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 137

def public?
  !private
end

#to_sString

Returns a short description of the dataset.

Returns:

  • (String)

    Description string



163
164
165
# File 'lib/durable_huggingface_hub/types/dataset_info.rb', line 163

def to_s
  id
end