{"record":{"id":"0525456879c543b3","repo":"astral-sh/uv","slug":"the-file-appears-to-be-a-file-but-requi","errorCode":null,"errorMessage":"The file `{}` appears to be a `{}` file, but requirements must be specified in `requirements.txt` format","messagePattern":"The file `(.+?)` appears to be a `(.+?)` file, but requirements must be specified in `requirements\\.txt` format","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/uv-requirements/src/sources.rs","lineNumber":87,"sourceCode":"            Ok(Self::RequirementsTxt(path))\n        } else if path.extension().is_none() {\n            // If we don't have an extension, mark it as extensionless so we can detect\n            // the format later (either a PEP 723 script or a requirements.txt file).\n            Ok(Self::Extensionless(path))\n        } else {\n            Ok(Self::RequirementsTxt(path))\n        }\n    }\n\n    /// Parse a [`RequirementsSource`] from a `requirements.txt` file.\n    pub fn from_requirements_txt(path: PathBuf) -> Result<Self> {\n        if path == Path::new(\"-\") {\n            return Ok(Self::Extensionless(path));\n        }\n\n        for file_name in [\"pyproject.toml\", \"setup.py\", \"setup.cfg\"] {\n            if path.ends_with(file_name) {\n                return Err(anyhow::anyhow!(\n                    \"The file `{}` appears to be a `{}` file, but requirements must be specified in `requirements.txt` format\",\n                    path.user_display(),\n                    file_name\n                ));\n            }\n        }\n        if path\n            .file_name()\n            .and_then(OsStr::to_str)\n            .is_some_and(is_pylock_toml)\n        {\n            return Err(anyhow::anyhow!(\n                \"The file `{}` appears to be a `pylock.toml` file, but requirements must be specified in `requirements.txt` format\",\n                path.user_display(),\n            ));\n        } else if path\n            .extension()\n            .is_some_and(|ext| ext.eq_ignore_ascii_case(\"toml\"))","sourceCodeStart":69,"sourceCodeEnd":105,"githubUrl":"https://github.com/astral-sh/uv/blob/f1a42680ff5272232d65748acf338b19778dde24/crates/uv-requirements/src/sources.rs#L69-L105","documentation":"Error \"The file `{}` appears to be a `{}` file, but requirements must be specified in `requirements.txt` format\" thrown in astral-sh/uv.","triggerScenarios":"Thrown at crates/uv-requirements/src/sources.rs:87 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f1a42680ff5272232d65748acf338b19778dde24","analyzedAt":"2026-08-16T04:51:47.599Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}