agentsclimarketplace

Python scala idioms

Skill cxcscmu/SkillLearnBench/skills/b1-one-shot-claude-opus-4-6/python-scala-translation/python-scala-idioms

Guide for writing idiomatic Scala including naming conventions, error handling, and pattern matching.From its SKILL.md

Install
npx -y skills add cxcscmu/SkillLearnBench --skill python-scala-idioms

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

1.1 KB, 269 tokens by cl100k_base, as published. Nobody here has run it

Scala Idioms and Conventions

Naming Conventions

  • Classes/Traits: PascalCase
  • Methods/Fields: camelCase (not snake_case)
  • Constants: PascalCase in companion objects or UPPER_CASE for enum-like
  • Package: lowercase
  • Type parameters: single uppercase letter T, A, B

Error Handling

// Python: raise ValueError -> Scala: throw or Either/Try
// Prefer Option for absence, Either/Try for errors
def tokenizePath(value: Json, path: String): Option[Token]

Pattern Matching (replaces isinstance chains)

// Python: if isinstance(value, str): ...
// Scala:
value match {
  case s: String => ...
  case i: Int    => ...
  case _         => ...
}

String Interpolation

// Python: f"{value:.6f}" -> Scala: f"$value%.6f" or s"$value"

Companion Objects

// Factory methods, constants go in companion objects
object TemporalTokenizer {
  val IsoFormat = "yyyy-MM-dd'T'HH:mm:ss"
  val DateFormat = "yyyy-MM-dd"
}

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.