<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dart/lib/src, branch main</title>
<subtitle>Dart/Flutter client for the public CEP API
</subtitle>
<id>http://git.cep.is/dart/atom?h=main</id>
<link rel='self' href='http://git.cep.is/dart/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.cep.is/dart/'/>
<updated>2026-07-27T23:53:07Z</updated>
<entry>
<title>Name the municipality behind a CEP that does not exist</title>
<updated>2026-07-27T23:53:07Z</updated>
<author>
<name>Murilo Ijanc</name>
<email>murilo@ijanc.org</email>
</author>
<published>2026-07-27T23:25:04Z</published>
<link rel='alternate' type='text/html' href='http://git.cep.is/dart/commit/?id=82d92ed4291663bae94014b4363064dbb26c6a51'/>
<id>urn:sha1:82d92ed4291663bae94014b4363064dbb26c6a51</id>
<content type='text'>
A CEP that fails a lookup is rarely a random number: it is usually someone
who knows the city and guessed the digits, and the classic guess is the
-000 that 957 municipalities never received. The API now attaches a faixa
block to the 404 naming the municipality that band belongs to, so the
caller can answer "no, but you were looking at Areal/RJ" instead of just
"no".

It stays an error. Faixa hangs off CepNotFoundException, never off Address,
and cepIni/cepFim are the extremes that actually exist in the municipality
rather than the range the Correios publish — echoing back the published
start would return the very CEP that just failed. The interval is sparse,
which is what ceps is for; it is not a list of alternatives.

Parsing is deliberately forgiving: a missing, empty or malformed block is
null. Losing a clean not-found to a parse error over the hint attached to
it would be a bad trade.
</content>
</entry>
<entry>
<title>Initial import</title>
<updated>2026-07-26T15:38:22Z</updated>
<author>
<name>Murilo Ijanc</name>
<email>murilo@ijanc.org</email>
</author>
<published>2026-07-26T15:38:22Z</published>
<link rel='alternate' type='text/html' href='http://git.cep.is/dart/commit/?id=8e719fc715eb7ae9aa1c842e633f15b5c6cd3688'/>
<id>urn:sha1:8e719fc715eb7ae9aa1c842e633f15b5c6cd3688</id>
<content type='text'>
</content>
</entry>
</feed>
