mirror of
https://github.com/badges/shields.git
synced 2025-04-18 19:44:04 +03:00
* support setting pypiBaseUrl by environment variables * Add support for pypiBaseUrl configuration * Update Pypi services to include pypiBaseUrl parameter * change package name example to a more well-known package * Update custom-environment-variables.yml * Update Pypi services to include pypiBaseUrl parameter * fix openapi mismatch * Update doc/server-secrets.md --------- Co-authored-by: chris48s <chris48s@users.noreply.github.com>
42 lines
1.0 KiB
JavaScript
42 lines
1.0 KiB
JavaScript
import PypiBase, { pypiGeneralParams } from './pypi-base.js'
|
|
import { parseClassifiers } from './pypi-helpers.js'
|
|
|
|
export default class PypiImplementation extends PypiBase {
|
|
static category = 'platform-support'
|
|
|
|
static route = this.buildRoute('pypi/implementation')
|
|
|
|
static openApi = {
|
|
'/pypi/implementation/{packageName}': {
|
|
get: {
|
|
summary: 'PyPI - Implementation',
|
|
parameters: pypiGeneralParams,
|
|
},
|
|
},
|
|
}
|
|
|
|
static defaultBadgeData = { label: 'implementation' }
|
|
|
|
static render({ implementations }) {
|
|
return {
|
|
message: implementations.sort().join(' | '),
|
|
color: 'blue',
|
|
}
|
|
}
|
|
|
|
async handle({ egg }, { pypiBaseUrl }) {
|
|
const packageData = await this.fetch({ egg, pypiBaseUrl })
|
|
|
|
let implementations = parseClassifiers(
|
|
packageData,
|
|
/^Programming Language :: Python :: Implementation :: (\S+)$/,
|
|
)
|
|
if (implementations.length === 0) {
|
|
// Assume CPython.
|
|
implementations = ['cpython']
|
|
}
|
|
|
|
return this.constructor.render({ implementations })
|
|
}
|
|
}
|